前言
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();