AI摘要:本文介绍了如何通过Root和Scrcpy接管因屏幕碎裂而无法正常使用的手机。首先,连接手机到电脑并使用ADB命令定位触控输入节点,禁用该节点的读取权限并软重启手机。接着,利用Scrcpy软件实现电脑对手机的操控。最后,提供了进阶操作,通过开机脚本自动禁用屏幕触摸,简化后续使用。此方法有效解决了屏幕损坏带来的使用困扰。
前言
之前的手机屏幕左上角摔碎了,导致屏幕漏液加乱跳,无法正常使用,通过该方法可以停用手机屏幕触摸,然后使用scrcpy接管使用。
具体步骤
定位触控输入节点
将手机连接电脑,打开终端或命令行,输入以下命令来列出所有的输入设备:
adb shell getevent -il在输出的列表中,向下滚动寻找带有 ABS_MT_POSITION_X 和 ABS_MT_POSITION_Y(多点触控坐标)属性的设备。它的名称通常会包含 touchscreen、goodix、focaltech 或 novatek 等字眼。
记下这个设备对应的节点路径,通常格式为 /dev/input/eventX(X 是一个数字,比如我的设备是 event11)。
禁用该节点的读取权限并软重启框架
adb shell
su
chmod 000 /dev/input/eventX
stop; start此时手机会软重启一次,不用担心。因为Android 的输入系统(EventHub)在开机时就已经打开了 /dev/input/eventX 并持有了它的文件描述符。在 Linux 机制中,即使你事后用 chmod 000 修改了节点权限,也不会切断已经建立的读取连接。系统依然能疯狂接收到触控的信号,所以我们软重启一次来实现修改。
通过电脑端接管手机操控
物理触摸被禁用后,你可以使用开源神器 Scrcpy 来接管手机。它不仅延迟极低,而且原生支持通过 ADB 传输电脑的鼠标和键盘事件到手机。
- 在电脑上下载并解压 Scrcpy(支持 Windows/macOS/Linux)。
- 在终端中运行以下命令启动投屏并控制:
scrcpy进阶操作
我们直接通过root管理器的开机脚本实现开机自动禁用屏幕触摸,省心省力。
adb shell
su
echo '#!/system/bin/sh' > /data/adb/service.d/disable_touch.sh
echo 'sleep 15' >> /data/adb/service.d/disable_touch.sh
echo 'rm /dev/input/event11' >> /data/adb/service.d/disable_touch.sh
chmod 755 /data/adb/service.d/disable_touch.sh这里我们使用rm替换原本的chmod 000,因为Android 的 EventHub 内部使用了 inotify 机制来实时监控/dev/input/ 目录。
- 如果你用 chmod 改变权限,inotify 不会管,FD 继续保持连接。
- 但是,如果你直接把这个设备节点文件删掉 (rm),inotify 会立刻捕捉到 IN_DELETE 事件,并通知 EventHub:“硬件被拔出了”。EventHub 就会立刻主动断开连接并销毁该 FD。
因为 /dev/input/ 挂载在内存文件系统 (devtmpfs) 上,直接删除节点非常安全,且每次开机底层都会重新生成,不会对系统造成任何永久性破坏。
后记
自此手机开机就会自动禁用屏幕触摸,然后使用scrcpy来接管使用。