夜雨聆风学习资料网

ARTICLE · 1270156

不装App、不用Root,自己动手写一个USB投屏

不装App、不用Root,自己动手写一个USB投屏

不装App、不用Root,自己动手写一个USB投屏

我拿安卓9老手机试了,一根USB线连上电脑,画面直接投过去。鼠标能点、能拖、能右键返回,中文也能打。

市面上现成的工具要么得装App,要么不兼容老机器。我就自己动手写了一套:电脑端用C++,手机端跑一段纯Java后台程序。

最麻烦的是怎么把屏幕传出来。普通录屏得有个App在前台点允许,我这压根没界面。最后靠ADB调试身份的特权绕了过去:造一块虚拟屏,让硬件编码器直接取画面,压成H.264流传给电脑。

这套玩法只对安卓5到10管用,11以上系统接口变了,直接不兼容。为了抠出几十毫秒延迟,我把一帧画面的数据搬运从5次砍到基本直传,解码后也不再逐像素复制。多线程分工,一个收画面、一个发指令、一个显示,手机卡一下也不至于把窗口卡死。

鼠标操作也做了映射:左键对应触摸,快速拖动会自动补中间点防“瞬移”,右键是返回,中键回桌面。连接这块也踩过坑,ADB隧道会假连接,所以判断逻辑是“连上了但握手失败等于手机端挂了”,得自动拉起重连;读到格式不对的数据直接断开,外加安全token防偷窥。

源码在这,想折腾的可以看看:
https://github.com/suihanlansnow/control_android_usb

原文不装App、不用Root,自己动手做一个USB投屏神器
上海,13分钟前,

相关学习资料