Android 12系统休眠时,需要不管接什么型号usb tp都能够触摸唤醒。
Android12系统中,usb tp要能够触摸唤醒,需要在frameworks/native/services/inputflinger/reader/mapper/TouchInputMapper.cpp中将mParameters.wake赋值为true,才能够在系统休眠的时候,触摸usb tp唤醒系统。(在TouchInputMapper.cpp中mParameters.wake的值是由getDeviceContext().isExternal();决定的,getDeviceContext().isExternal();是通过EventHub.cpp中的bool EventHub::Device::isExternalDeviceLocked()获得的。这个函数是通过读取对应tp idc文件中的device.internal属性来决定的。)我们现在要求所有的usb tp的能够触摸唤醒,只需按如下修改即可:
- Index: reader/mapper/TouchInputMapper.cpp
- ===================================================================
- --- reader/mapper/TouchInputMapper.cpp (revision 2066)
- +++ reader/mapper/TouchInputMapper.cpp (working copy)
- @@ -508,7 +508,7 @@
- // Initial downs on external touch devices should wake the device.
- // Normally we don't do this for internal touch screens to prevent them from waking
- // up in your pocket but you can enable it using the input device configuration.
- - mParameters.wake = getDeviceContext().isExternal();
- + mParameters.wake = true;
- getDeviceContext().getConfiguration().tryGetProperty(String8("touch.wake"), mParameters.wake);
- }

09-20 21:45:13.715 664 818 I InputReader: Disabling eGalax Inc. eGalaxTouch P80H84 2331 v00_T1 k4.10.143 (device 3) because the associated viewport is not active
修改方法
- @@ -664,12 +664,12 @@
- return;
- }
-
- - if (!newViewport->isActive) {
- - ALOGI("Disabling %s (device %i) because the associated viewport is not active",
- - getDeviceName().c_str(), getDeviceId());
- - mDeviceMode = DeviceMode::DISABLED;
- - return;
- - }
- + // if (!newViewport->isActive) {
- + // ALOGI("Disabling %s (device %i) because the associated viewport is not active",
- + // getDeviceName().c_str(), getDeviceId());
- + // mDeviceMode = DeviceMode::DISABLED;
- + // return;
- + // }
-
- // Raw width and height in the natural orientation.
- int32_t rawWidth = mRawPointerAxes.getRawWidth();