Bug #117763
【IOVDEV-25481】【VC1】【0072】【台架】【EE环境】【副屏】非应用界面熄屏情况下点击屏幕进入了应用
Status: | CLOSED | Start date: | 2023-05-05 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | 移动测试一组_CDTS 刘强 | % Done: | 100% | |
Category: | BSP | |||
Target version: | - | |||
Need_Info: | -- | Found Version: | 01.00.0094.c103 | |
Resolution: | FIXED | Degrated: | -- | |
Severity: | Normal | Verified Version: | FlatBuild_HH_MCE_FSE.M.R.user.01.00.0101.C103(X103) | |
Reproducibility: | Every time | Fixed Version: | ||
Test Type: | ST | Root cause: | 使用TP模拟powerkey,在唤醒屏幕时,TP会持续报点,导致误触点击app |
Description
环境信息】EE环境
【问题出现时间】:20230504 9:24
【前提条件】:车机上电
【操作步骤】
1.副屏桌面时点击控制中心的“熄屏”按钮进行熄屏
2.点击副屏屏幕
【实际结果】
1.进入了“爱奇艺”应用界面
【期望结果】
1.熄屏情况下点击屏幕仅退出熄屏
【备注】:
视频地址:
【影响版本】:01.00.0094.c103
【硬件版本号】
Related issues
History
#1 Updated by CD FW 曹覃刚 about 2 years ago
- Status changed from New to ASSIGNED
- Assignee changed from CD FW 曹覃刚 to CD FW王武军
#2 Updated by CD FW王武军 about 2 years ago
【】当前状态
1、确认问题现象,并在本地复现问题
2、对比测试vc和vx
vc的屏该问题很容易复现,但是也有不复现的时候;
vx的屏该问题很难复现,但是也有复现的时候
3、问题分析
问题的产生原因大致是:
在锁屏情况下,单击屏幕时,底层会在点击时,模拟发送了一个
power key事件最后分发到PhoneWindowManager中触发了亮屏的流程。
但是在分发power key时,底层同时写入了touch的事件,而这个touch事件也会被
InputReader进行读取和分发,在分过过程中会判断屏幕是否锁屏,进而完成分发。
出现问题时,就是InputReader将touch进行了分发,触发了点击事件。
正是因为多出来的这个power key事件,引起了InputDispatcher的分发异常。这里会有一个问题:为什么vc容易复现,但是有时候不复现,而vx难复现,但是也会复现?
其实这个的原因就在于InputDispatcher在分发时检测到的屏幕亮屏的状态异常引起。
因为底层处理屏幕正常处理touch事件时,强制在前面写入了一个power key,其实power key就是这次touch的根本操作目的,但是
touch的原始数据并未被清除,导致原来的touch也会分发执行,但是power key的强制写入引起了屏幕状态的变化导致touch分发检测出现问题。
4、vc和vx抓取到的具体event信息和逻辑日志信息
vc的屏,从getevent获取的信息:
锁屏下点击屏幕:
[ 1016.712398] /dev/input/event2: EV_ABS ABS_MT_TRACKING_ID 00000032
[ 1016.712398] /dev/input/event2: EV_KEY KEY_POWER DOWN
[ 1016.712398] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 0
[ 1016.713830] /dev/input/event2: EV_KEY KEY_POWER UP
[ 1016.713830] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 698
[ 1016.713998] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 000005c9
[ 1016.713998] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 000000ea
[ 1016.713998] /dev/input/event2: EV_KEY BTN_TOUCH DOWN
[ 1016.713998] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 5952
[ 1016.852448] /dev/input/event2: EV_ABS ABS_MT_TRACKING_ID ffffffff
[ 1016.852448] /dev/input/event2: EV_KEY BTN_TOUCH UP
[ 1016.852448] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 7
可以看到发送了power key 在notifyKey中进行了处理,
还发送了touch事件,在notifyMotion中处理,具体日志信息如下:
05-06 04:35:44.650 1025 1658 D InputDispatcher: notifyKey - eventTime=489893206000, deviceId=3, source=0x101, displayId=-1policyFlags=0x0, action=0x0, flags=0x8, keyCode=0x1a, scanCode=0x74, metaState=0x0, downTime=489893206000
05-06 04:35:44.663 1025 1658 D InputDispatcher: notifyKey - eventTime=489893425000, deviceId=3, source=0x101, displayId=-1policyFlags=0x0, action=0x1, flags=0x8, keyCode=0x1a, scanCode=0x74, metaState=0x0, downTime=489893206000
05-06 04:35:44.664 1025 1657 D InputDispatcher: Dropped event because policy consumed it.
05-06 04:35:44.665 1025 1657 D InputDispatcher: Dropped event because policy consumed it.
05-06 04:35:44.701 1025 1658 D InputDispatcher: notifyDeviceReset - eventTime=489944109187, deviceId=3
05-06 04:35:44.701 1025 1658 D InputDispatcher: notifyDeviceReset - eventTime=489944109187, deviceId=2
05-06 04:35:44.805 1025 1658 D InputDispatcher: notifyMotion - id=3ba773a3 eventTime=489893206000, deviceId=3, source=0x5002, displayId=0, policyFlags=0x0, action=0x9, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=486643439000
05-06 04:35:44.805 1025 1658 D InputDispatcher: Pointer 0: id=0, toolType=1, x=2338.000000, y=992.000000, pressure=0.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
05-06 04:35:44.805 1025 1658 D InputDispatcher: notifyMotion - id=3a9c19a2 eventTime=489893206000, deviceId=3, source=0x5002, displayId=0, policyFlags=0x0, action=0x7, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=486643439000
05-06 04:35:44.805 1025 1658 D InputDispatcher: Pointer 0: id=0, toolType=1, x=2338.000000, y=992.000000, pressure=0.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
05-06 04:35:44.809 1025 1658 D InputDispatcher: notifyMotion - id=12970766 eventTime=489893425000, deviceId=3, source=0x5002, displayId=0, policyFlags=0x0, action=0x7, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=486643439000
05-06 04:35:44.809 1025 1658 D InputDispatcher: Pointer 0: id=0, toolType=1, x=2338.000000, y=992.000000, pressure=0.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
05-06 04:35:44.809 1025 1658 D InputDispatcher: notifyMotion - id=3fa9dd76 eventTime=489893493000, deviceId=3, source=0x5002, displayId=0, policyFlags=0x0, action=0xa, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=486643439000
05-06 04:35:44.809 1025 1658 D InputDispatcher: Pointer 0: id=0, toolType=1, x=2338.000000, y=992.000000, pressure=0.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
05-06 04:35:44.809 1025 1658 D InputDispatcher: notifyMotion - id=19ff73a7 eventTime=489893493000, deviceId=3, source=0x5002, displayId=0, policyFlags=0x0, action=0x0, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=489893493000
05-06 04:35:44.809 1025 1658 D InputDispatcher: Pointer 0: id=0, toolType=1, x=1458.000000, y=207.000000, pressure=1.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
05-06 04:35:44.809 1025 1658 D InputDispatcher: notifyMotion - id=36bda887 eventTime=490047310000, deviceId=3, source=0x5002, displayId=0, policyFlags=0x0, action=0x1, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=489893493000
05-06 04:35:44.809 1025 1658 D InputDispatcher: Pointer 0: id=0, toolType=1, x=1458.000000, y=207.000000, pressure=1.000000, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
vx的屏,从getevent抓取的信息
锁屏下点击屏幕:
[ 3750.306422] /dev/input/event2: EV_KEY KEY_POWER DOWN
[ 3750.306422] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 0
[ 3750.307056] /dev/input/event2: EV_KEY KEY_POWER UP
[ 3750.307056] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 1577
[ 3750.315336] /dev/input/event2: EV_ABS ABS_MT_TRACKING_ID 0000027c
[ 3750.315336] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 00000318
[ 3750.315336] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 00000104
[ 3750.315336] /dev/input/event2: EV_ABS ABS_MT_PRESSURE 00000071
[ 3750.315336] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 120
[ 3750.329214] /dev/input/event2: EV_ABS ABS_MT_PRESSURE 00000075
[ 3750.329214] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 72
[ 3750.343087] /dev/input/event2: EV_ABS ABS_MT_PRESSURE 00000077
[ 3750.343087] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 72
[ 3750.378471] /dev/input/event2: EV_ABS ABS_MT_PRESSURE 0000007b
[ 3750.378471] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 28
[ 3750.397764] /dev/input/event2: EV_ABS ABS_MT_PRESSURE 0000007a
[ 3750.397764] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 51
[ 3750.457499] /dev/input/event2: EV_ABS ABS_MT_TRACKING_ID ffffffff
[ 3750.457499] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 16
有power key,同时还有点击的信息。对比vc,vx的点击事件信息还有所区别,信息更多,但是都会power key ,再处理 touch。
04-28 14:34:39.534 1043 1715 D InputDispatcher: notifyKey - eventTime=3881539812000, deviceId=2, source=0x101, displayId=-1policyFlags=0x0, action=0x0, flags=0x8, keyCode=0x1a, scanCode=0x74, metaState=0x0, downTime=3881539812000
04-28 14:34:39.541 1043 1714 D InputDispatcher: Dropped event because policy consumed it.
04-28 14:34:39.562 1043 1715 D InputDispatcher: notifyKey - eventTime=3881540752000, deviceId=2, source=0x101, displayId=-1policyFlags=0x0, action=0x1, flags=0x8, keyCode=0x1a, scanCode=0x74, metaState=0x0, downTime=3881539812000
04-28 14:34:39.563 1043 1714 D InputDispatcher: Dropped event because policy consumed it.
04-28 14:34:39.618 1043 1715 D InputDispatcher: notifyDeviceReset - eventTime=3881657863205, deviceId=4
04-28 14:34:39.618 1043 1715 D InputDispatcher: notifyDeviceReset - eventTime=3881657863205, deviceId=2
04-28 14:34:39.671 1043 1715 D InputDispatcher: notifyMotion - id=4c66316 eventTime=3881548612000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x0, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.671 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=800.000000, y=259.000000, pressure=0.349020, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.692 1043 1715 D InputDispatcher: notifyMotion - id=372f9736 eventTime=3881559441000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.692 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=801.000000, y=259.000000, pressure=0.396078, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.715 1043 1715 D InputDispatcher: notifyMotion - id=29e6a7a4 eventTime=3881573261000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.715 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=801.000000, y=259.000000, pressure=0.431373, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.769 1043 1715 D InputDispatcher: notifyMotion - id=f2ccef eventTime=3881590483000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.769 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=802.000000, y=259.000000, pressure=0.454902, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.791 1043 1715 D InputDispatcher: notifyMotion - id=5e4afc5 eventTime=3881600625000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.791 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=803.000000, y=259.000000, pressure=0.470588, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.810 1043 1715 D InputDispatcher: notifyMotion - id=edac30a eventTime=3881616891000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.810 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=803.000000, y=259.000000, pressure=0.478431, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.827 1043 1715 D InputDispatcher: notifyMotion - id=3e09f3e4 eventTime=3881628389000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.827 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=804.000000, y=259.000000, pressure=0.482353, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.842 1043 1715 D InputDispatcher: notifyMotion - id=168e1dee eventTime=3881672758000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.842 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=805.000000, y=259.000000, pressure=0.482353, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.856 1043 1715 D InputDispatcher: notifyMotion - id=2d82ac51 eventTime=3881685627000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x2, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.856 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=806.000000, y=259.000000, pressure=0.443137, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
04-28 14:34:39.871 1043 1715 D InputDispatcher: notifyMotion - id=4718f6f eventTime=3881740260000, deviceId=2, source=0x5002, displayId=0, policyFlags=0x0, action=0x1, actionButton=0x0, flags=0x0, metaState=0x0, buttonState=0x0, edgeFlags=0x0, xPrecision=1.000000, yPrecision=1.000000, xCursorPosition=nan, yCursorPosition=nan, downTime=3881548612000
04-28 14:34:39.871 1043 1715 D InputDispatcher: Pointer 0: id=0, toolType=1, x=806.000000, y=259.000000, pressure=0.443137, size=0.000000, touchMajor=0.000000, touchMinor=0.000000, toolMajor=0.000000, toolMinor=0.000000, orientation=0.000000
5、处理建议
根据点击亮屏的实现来看是在锁屏下,正常点击事件时,强制模拟写入了一个power key,以完成亮屏的功能。
但是这个时候应该将后续的touch或者屏幕的正常事件进行拦截不再写入文件节点中,以此来达到用power key取代touch,而不是
在touch之前插入power key。不然让InputDispatcher继续处理touch必然会因为前面强制写入的power key,引起状态的异常。
【】下一步
@杜磊,需要bsp的同事跟进下该问题。
是否可以用power key 取代touch而不是在touch之前插入。
#3 Updated by CD FW王武军 about 2 years ago
- Category changed from CD-FW to BSP
- Assignee changed from CD FW王武军 to CD BSP-杜磊
#4 Updated by CD BSP-杜磊 about 2 years ago
- % Done changed from 0 to 40
- Root cause set to 使用TP模式powerkey,在唤醒屏幕时,TP会持续报点,导致误触点击app
#5 Updated by CD BSP-杜磊 about 2 years ago
- % Done changed from 40 to 70
#6 Updated by CD BSP-杜磊 about 2 years ago
5/15 VB验证失败,本地代码修改,验证中
#7 Updated by CD BSP-杜磊 about 2 years ago
- Status changed from ASSIGNED to NEED_INFO
- Assignee changed from CD BSP-杜磊 to 移动测试一组_CDTS 刘强
- % Done changed from 70 to 90
#8 Updated by IoT scm about 2 years ago
ID | Project | Branch | Uploader |
199224 | general/kernel/msm-4.19 | Pre_figure_turbox-c2130c-la1.1-vendor-dev | dulei0503@thundersoft.com |
BSP:TP: Optimize touch wake-up system When touch wake-up system, delay 1s to report coordinates TC-RID: 1201-0100401 IssueID: TS-R-DF-117763 Change-Id: I96987328cba0ed6021173942fb164f4d03da5384 |
#9 Updated by 移动测试一组_CDTS 刘强 about 2 years ago
- Assignee changed from 移动测试一组_CDTS 刘强 to CD BSP-杜磊
#10 Updated by CD BSP-杜磊 about 2 years ago
- Status changed from NEED_INFO to RESOLVED
- Assignee changed from CD BSP-杜磊 to 移动测试一组_CDTS 刘强
- % Done changed from 90 to 100
- Resolution changed from -- to FIXED
- Root cause changed from 使用TP模式powerkey,在唤醒屏幕时,TP会持续报点,导致误触点击app to 使用TP模拟powerkey,在唤醒屏幕时,TP会持续报点,导致误触点击app
代码已入库,请使用DB版本验证后,close此问题
#11 Updated by IoT scm about 2 years ago
ID | Project | Branch | Uploader |
200820 | general/kernel/msm-4.19 | Pre_figure_turbox-c2130c-la1.1-vendor-dev | dulei0503@thundersoft.com |
BSP:TP: Optimize touch wake-up system2 When tp driver first probe, need set panel on TC-RID: 1201-0100401 IssueID: TS-R-DF-117763 Change-Id: I50d7631bd11ada6a568118f74c2d3f7ed8eabac7 |
#12 Updated by 物联网测试组_TSCD 王维 about 2 years ago
- Verified Version set to FlatBuild_HH_MCE_FSE.M.R.user.01.00.0101.C103(X103)
VX1和VC1均已验证,未复现
#13 Updated by 物联网测试组_TSCD 王维 about 2 years ago
- Status changed from RESOLVED to VERIFIED
#14 Updated by 物联网测试组_TSCD 王维 about 2 years ago
- Status changed from VERIFIED to CLOSED