Allwinner H313 实现APP 屏蔽鼠标右键功能

本文详细介绍了如何在基于Allwinner H313平台的Android系统中,通过编程方式实现APP屏蔽鼠标右键点击的功能。通过修改源代码和添加特定的事件处理,可以确保用户在使用鼠标操作时,右键点击不再产生任何响应,从而提供定制化的用户体验。
--- a/android/frameworks/native/services/inputflinger/InputReader.cpp
+++ b/android/frameworks/native/services/inputflinger/InputReader.cpp
@@ -58,7 +58,7 @@
 #include <input/Keyboard.h>
 #include <input/VirtualKeyMap.h>
 #include <statslog.h>
-
+#include <cutils/properties.h>
 #define INDENT "  "
 #define INDENT2 "    "
 #define INDENT3 "      "
@@ -1348,9 +1348,19 @@ uint32_t CursorButtonAccumulator::getButtonState() const {
     if (mBtnLeft) {
         result |= AMOTION_EVENT_BUTTON_PRIMARY;
     }
-    if (mBtnRight) {
+    if (mBtnRight) { //Sam Jiang
 #if defined(TARGET_PLATFORM_HOMLET) || defined(TARGET_PLATFORM_AUTO)
-        result |= AMOTION_EVENT_BUTTON_BACK;
+       ALOGD("Will Switch Mouse Right Function");
+       if (property_get_bool("persist.sys.disable_btn_right", false))
+       {
+               ALOGD("Enter disable Mouse right button function");
+               //result |= AMOTION_EVENT_BUTTON_BACK;
+       }
+       else
+       {
+               ALOGD("Enable Mouse right buttion");
+               result |= AMOTION_EVENT_BUTTON_BACK;
+       }
 #else
         result |= AMOTION_EVENT_BUTTON_SECONDARY;
 #endif

Allwinner H313 是全志科技推出的一款面向智能电视和显示设备的高性能应用处理器。该芯片基于四核 ARM Cortex-A53 架构,支持 4K 超高清解码,广泛用于智能电视盒子、OTT 设备和嵌入式多媒体平台。获取其源代码仓库和开发资源是进行底层开发、定制化系统构建以及驱动适配的重要前提。 对于 Allwinner H313 的源代码仓库,通常其 U-Boot 引导程序和 Linux 内核源码可以从官方或社区维护的 Git 仓库中获取。例如,U-Boot 的 sunxi 分支常用于全志 SoC 系列,可以通过以下命令克隆: ```bash git clone https://github.com/LeMaker/u-boot-sunxi.git ``` 此外,Linux 内核源码可以参考官方 GitHub 仓库或 Linaro 维护的 sunxi-linux 项目。通常,这些仓库会包含适用于全志 H313 的设备树配置、驱动程序以及启动加载器配置文件[^1]。 在开发资源方面,建议参考以下内容: - **官方文档**:全志科技通常会为开发者提供详细的数据手册(Datasheet)、用户指南(User Manual)和硬件设计指南(Hardware Design Guide),这些文档对于硬件设计和系统启动调试至关重要。 - **社区资源**:Armbian、Linux-sunxi 社区等提供了针对全志 H313 的预编译镜像、设备树配置示例以及常见问题的解决方案。 - **交叉编译工具链**:为了进行 U-Boot 和 Linux 内核的编译,推荐使用 Linaro 提供的 GCC 工具链,例如 `arm-linux-gnueabihf-gcc`。 - **调试工具**:使用 JTAG 调试接口和串口调试工具(如 PL2303 或 CP2102)可以有效帮助调试启动过程和内核日志输出。 以下是一个适用于全志 H313 的 U-Boot 编译流程示例: ```bash # 安装交叉编译工具链 sudo apt install gcc-arm-linux-gnueabihf # 克隆 U-Boot 源码 git clone https://github.com/LeMaker/u-boot-sunxi.git # 进入源码目录并配置 H313 设备 cd u-boot-sunxi make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun8i_h313_config # 编译 U-Boot make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- ``` 编译完成后,生成的 `u-boot-sunxi-with-spl.bin` 文件可用于烧写到设备的启动介质中。 关于开发过程中可能涉及的闭源固件问题,需要注意部分设备依赖于固化在 ROM 中的只读固件(如 GPU 或视频解码模块),这些组件的源码可能并未公开,因此在开发过程中可能需要依赖厂商提供的二进制 blob 文件[^2]。 ---
Allwinner H313 是一款基于 ARM 架构的嵌入式处理器,常用于平板电脑、智能终端等设备中。在 Android 系统中,`system.prop` 文件是用于定义系统属性的重要配置文件之一,它通常位于设备的 `/system/build.prop` 或 `/system/system.prop` 中,用于配置系统启动参数、硬件适配信息、性能调优等[^3]。 对于基于 Allwinner H313 的设备(如 Softwinner Cupid-P1),其 `system.prop` 文件通常位于设备固件的系统镜像中,具体路径可能包括: - `/system/build.prop` - `/system/system.prop` - `/vendor/build.prop` - `/odm/etc/system.prop`(根据设备厂商定制情况) 这些文件通常由设备厂商在编译系统镜像时通过 `build/tools/buildinfo.sh` 脚本生成,并结合 `PRODUCT_PROPERTY_OVERRIDES` 宏定义进行属性合并[^3]。 以下是一些常见的 `system.prop` 配置示例(适用于基于 Allwinner 平台的设备): ```properties # 设置设备型号 ro.product.model=H313 # 设置系统版本 ro.build.version.release=11 # 设置系统SDK版本 ro.build.version.sdk=30 # 设置设备厂商 ro.product.manufacturer=Allwinner # 设置GPU渲染器 ro.opengles.version=196609 # 设置屏幕密度 ro.sf.lcd_density=240 # 设置调试端口 ro.debuggable=1 # 设置是否启用多点触控 touch.deviceType = touchScreen ``` 设备的 `system.prop` 文件还可以通过设备树(device tree)或设备配置目录(如 `device/sun8i/h313/`)中的 `system.prop` 文件进行定制。在 AOSP 构建流程中,该文件通常会被合并到最终的 `build.prop` 文件中[^4]。 需要注意的是,修改 `system.prop` 文件可能会影响系统的稳定性或安全性,因此建议在修改前备份原始文件,并确保了解所修改属性的含义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Keep Coding...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值