Android Input kl文件实现键值映射

news2025/1/10 10:58:31

Android Keyevent定义在KeyEvent.java 截图对应 public static final int KEYCODE_SYSRQ = 120;

adb shell input keyevent SYSRQ

Linux Scancode定义在input-event-codes.h #define KEY_SCALE 120可以看到是不对应的
本来想通过指纹双击实现截图功能,发现上报scancode 120不行,后来才得知Android与Linux的code是有差异的,
最开始想的本办法是同时上报Linux Scancdoe音量下键和电源键 KEY_VOLUMEDOWN + KEY_POWER,后来才得知有键值隐射kl文件

根据以上流程图可以得知fingerprint 是没有vendorid 和prodcutid的,所以直接传的是name: uinput-fpc ,所有对应的文件为uinput-fpc.kl
指纹的HAL 注册input设置的流程如下,后面上报后就通过EventHub.cpp来处理了, 看流程图

(1)open /dev/uinput 
(2)ioctl UI_SET_EVBIT -> set_bit
(2)ioctl UI_SET_KEYBIT -> set_bit
(3)write udev->name(uinput-fpc) ->  uinput_setup_device_legacy 
(4)ioctl UI_DEV_CREATE  -> input_register_device
(5)write ev.type ev.code ev.value -> uinput_inject_event -> input_event

# Double Tap
-key 306   BUTTON_C
+key 306   SYSRQ
adb push uinput-fpc.kl system/usr/keylayout

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/515168.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈性能测试策略的理解

面对日益复杂的业务场景和不同的系统架构,前期的需求分析和准备工作,需要耗费很多的时间。而不同的测试策略,也对我们的测试结果是否符合预期目标至关重要。 这篇博客,聊聊我个人对常见的性能测试策略的理解,以及它们…

tkinter+爬虫(re库,tkinter库详解)

1.安装和认识本次实验所需要的库 re库(正则库,本次实验用于匹配文本) tkinter库 (GUI库,用于制作可视化界面) requests库 (网络请求库,用于制作爬虫) re和tkinter均为…

node 脚本调试

Node 脚本调试 node --inspect-brk index.js 执行以上命令,然后打开浏览器的控制台会发现有个node的logo 点击这个图标就可以开始调试代码 调试webpack 只需要找到webpack的执行入口,然后执行以下命令,只要是node脚本都可以进行调试。 n…

Shell脚本完成web服务器的建设

一,要求 1,安装httpd软件 2,定义防火墙规则 3,设置selinux为强制模式 4,web服务器的端口为8080 5,web服务器的内容目录为 /www/8080 6,所有操作开机有效 7,所有操作必须进行…

2022年上半年软件设计师下午试题

【试题四】(共15分) 阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 工程计算中经常要完成多个矩阵相乘的计算任务,对矩阵相乘进行以下说明。 (1)两个矩阵相乘要求第一个矩阵的列数等于第二个…

适合广告行业使用的企业网盘工具

Zoho Workdrive 是一款非常适合广告行业使用的企业网盘工具,它可以帮助广告行业进行高效、有序的项目管理。作为一名广告行业从业者,你是否遇到过以下问题? 2.文件无法有效共享 团队合作效率低下客户需求无法及时满足 这些问题都会严重影响项…

【Linux】Redis高可用概述2(Redis 发布订阅、Redis 事务、Redis主从复制)

一、Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 发送者可以向多个订阅者发送消息,订阅者可以收到多个发送者送来的消息,也就是是说发送者和订阅者是多对多的关系 实例…

MATLAB中资源管理器无法安装资源解决方法详细教程

摘要:介绍使用MATLAB获取附加功能时出现“续订软件维护服务”的界面问题解决方案,即使用预先从官网下载的安装包文件,直接运行离线安装文件后会自动弹出附加功能管理界面,这时可以安装该附加工具,详细过程见以下介绍。…

ProtoBuf原理

一、文章 https://zhuanlan.zhihu.com/p/404782892 二、测试 1.test.proto syntax "proto3";package proto; option go_package "./;proto";message Msg{uint32 age1 1;sint32 age2 2;string name 3;bytes data 4; }2.main.go package mainimpor…

【滤波】多元卡尔曼滤波器

本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第6章节06-Multivariate-Kalman-Filters(多元卡尔曼滤波器)。 %matplotlib inline#format the book import book_format book_format.set_style()简介 我们现在准备研究和实现完整的、多…

财报解读:Q2业绩指引未达预期,狂奔的爱彼迎要减速了?

全球民宿龙头爱彼迎Airbnb迎来了一个强劲的开端。 美东时间5月9日盘后,爱彼迎发布了2023年第一季度财报。财报显示,爱彼迎一季度营收、净利润、总预订金额都获得了不同程度增长,超出市场预期。美中不足的是,公司预计二季度营收下…

分组卷积和深度可分离卷积

文章目录 一、常规卷积操作二、分组卷积三、深度可分离卷积 一、常规卷积操作 在图中,输入的特征图大小为 H * W * 4 卷积核个数为 2 个,每个卷积核的大小为 K * K * 4 输出的特征图大小为 H’ * W’ * 2 二、分组卷积 !!&#…

Java 内存模型

JVM 内部使用的 Java 内存模型, 在逻辑上将内存划分为 线程栈(thread stacks)和堆内存 (heap)两个部分。 如下图所示: JVM 中,每个正在运行的线程,都有自己的线程栈。 线程栈包含了当…

多表查询~

文章目录 多表查询内连接外连接子查询单行单列多行单列多行多列 多表查询 笛卡尔积:有A,B两个集合 取A,B所有的组合情况 内连接 要想查询某一章表的某个字段,可用 表名.字段名表示 也可以给表起别名 隐式内连接INNER可省略 外连接 外连接分左外连接和右外连接 子查…

堆排序创建

堆排序创建 一、介绍1、什么是堆2、大项堆(排序前)3、小项堆(排序前)4、排序思想 二、大项堆排序案例1、流程2、讲解 三、总结 一、介绍 1、什么是堆 堆是一种叫做完全二叉树的数据结构,可以分为大项堆,小…

计算机知识 小tips

目录 什么是R语言? 电脑长期不关机会产生什么影响? nlp是什么? cv是什么? 什么是R语言? R语言是一种用于数据分析和统计建模的编程语言和环境。它由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman于1995年开发而…

【C语言督学训练营 第十三天】栈与循环队列的顺序实现与链式实现

文章目录 前言栈--思想栈--代码实战队列--思想队列--代码实战真题实战! 前言 栈与队列是数据结构中最常见的数据结构之一,因其特性往往可以将问题简单化,在使用栈与队列时要牢记:栈:先进后出,队列&#xf…

逆向练习及相关总结

文章目录 crakeme练习crackme1crackme2crackme3 解题步骤总结关键代码查找方法常见代码C类对象逆向分析C虚函数逆向分析 crakeme练习 crackme1 学到的知识点: main函数查找方法:运行到EntryPoint -> 第一个call(一般在第三行&#xff09…

如何用u盘重装系统win7

​如今的U盘重装win7系统是比较常见的重装win7系统的方法,适用性比较高,操作也十分的简单。有的小伙伴想给自己的电脑重装win7,那么我们用u盘重装系统怎么安装win7?现在小编就来教大家如何用u盘重装系统教程。 工具/原料: 系统…

CTR预估之FMs系列模型:FM/FFM/FwFM/FEFM

前言 ctr预估(点击率,click-through rate, CTR),指一个user在某个特定的场景下会点击一个item的概率估计,这里的item可以是广告、商品等,是推荐和广告系统中十分重要的模块。另外,这里的user-i…