用ps做网站网页,做网批的有什么网站呢,中铁十六门户登录,学习网站开发硬件平台#xff1a;QCS6125
软件平台#xff1a;Android11 需求#xff1a;Android设备通过接usb转接线连接鼠标功能屏蔽。 考虑到屏蔽的层面可以从两个层面去做#xff0c;一个是驱动层面不识别#xff0c;一个就是Android系统层面不识别加载#xff0c;本篇只讲后者。…硬件平台QCS6125
软件平台Android11 需求Android设备通过接usb转接线连接鼠标功能屏蔽。 考虑到屏蔽的层面可以从两个层面去做一个是驱动层面不识别一个就是Android系统层面不识别加载本篇只讲后者。
1、分析接入鼠标时候的日志
07-17 11:49:31.326124 0 0 I msm-dwc3 4e00000.ssusb: DWC3 exited from low power mode
--------- switch to main
07-17 11:49:31.519494 3131 3310 E AntiCheck: [SECSDK] pid 3309, TracePID is 0
--------- switch to kernel
07-17 11:49:31.557661 0 0 I usb 1-1 : new low-speed USB device number 2 using xhci-hcd
07-17 11:49:31.715120 0 0 I usb 1-1 : New USB device found, idVendor046d, idProductc077
07-17 11:49:31.715145 0 0 I usb 1-1 : New USB device strings: Mfr1, Product2, SerialNumber0
07-17 11:49:31.715162 0 0 I usb 1-1 : Product: USB Optical Mouse
07-17 11:49:31.715179 0 0 I usb 1-1 : Manufacturer: Logitech
07-17 11:49:31.740283 0 0 I input : Logitech USB Optical Mouse as /devices/platform/soc/4e00000.ssusb/4e00000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0111:0003:046D:C077.0001/input/input6
07-17 11:49:31.740748 0 0 I hid-generic 0111: 0003:046D:C077.0001: input: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-xhci-hcd.0.auto-1/input0
--------- switch to main
07-17 11:49:31.868222 1445 1557 D EventHub: No input device configuration file found for device Logitech USB Optical Mouse.
07-17 11:49:31.869328 1445 1557 I EventHub: usingClockIoctltrue
07-17 11:49:31.869380 1445 1557 I EventHub: New device: id7, fd306, path/dev/input/event6, nameLogitech USB Optical Mouse, classes0x80000008, configuration, keyLayout, keyCharacterMap, builtinKeyboardfalse,
07-17 11:49:31.871511 1445 1557 I InputReader: Device added: id8, eventHubId7, nameLogitech USB Optical Mouse, descriptor45dd693031521900f038547baa8709cf60c2611f,sources0x00002002
07-17 11:49:31.874726 3131 3151 I ez.app.launche: Background young concurrent copying GC freed 777596(44MB) AllocSpace objects, 0(0B) LOS objects, 20% free, 91MB/115MB, paused 202us total 119.147ms可以看到底层驱动识别后EventHub也识别了设备一些类型属性
New device: id7, fd306, path/dev/input/event6, nameLogitech USB Optical Mouse, classes0x80000008, configuration, keyLayout, keyCharacterMap, builtinKeyboardfalse,
遂计划从这里入手:
在EventHub::openDeviceLocked方法中有对input设备类型的判断和加载日志显示的是上文标红的类型查看EventHub.h中设备类型的定义发现该类型就是鼠标的类型 /* The input device is a cursor device such as a trackball or mouse. */ INPUT_DEVICE_CLASS_CURSOR 0x00000008,
2、跟代码逻辑屏蔽识别该类型的代码段具体修改如下
diff --git a/services/inputflinger/reader/EventHub.cpp b/services/inputflinger/reader/EventHub.cpp
index a1514af66..f726979be 100644
--- a/services/inputflinger/reader/EventHub.cppb/services/inputflinger/reader/EventHub.cpp-67,6 67,9 using android::base::StringPrintf;namespace android {// class type we do not want to support
static uint32_t NOT_SUPPORT_CLASS_TYPE 0;
static constexpr bool DEBUG false;static const char* DEVICE_PATH /dev/input;-1331,7 1334,8 status_t EventHub::openDeviceLocked(const char* devicePath) {// See if this is a cursor device such as a trackball or mouse.if (test_bit(BTN_MOUSE, device-keyBitmask) test_bit(REL_X, device-relBitmask) test_bit(REL_Y, device-relBitmask)) {
- device-classes | INPUT_DEVICE_CLASS_CURSOR;//device-classes | INPUT_DEVICE_CLASS_CURSOR;device-classes NOT_SUPPORT_CLASS_TYPE;}// See if this is a rotary encoder type device.将设备类型或的标志位标为不识别的一个类型即可后文代码识别到class为0会不走加载流程
// If the device isnt recognized as something we handle, dont monitor it.if (device-classes 0) { ALOGV(Dropping device: id%d, path%s, name%s, deviceId, devicePath,device-identifier.name.c_str());delete device;return -1;} 从而不挂载完成。 Mark