scrcpy 为什么不能常亮

scrcpy wifi连接无法常亮

我自己开发软件发现无法常亮,这样子用起来就非常不方便,然后我研究了scrcpy,他虽然有一个--stayway on 的命令,但我发现这个只有连接usb才会保持常亮。

过程

  1. 分析Scrcpy 只是设置setting 手机属性而已,电源管理设置而已,但如果用wifi没有效果了,因为我没有充电,但这样子如果我挂机软件或者游戏感觉用起来就不方便了。
  2. 我发现anlink可以做到。

分析anlink

我猜测他用什么adb命令,我懒的逆向分析,直接用火绒剑分析进程行为,我发现他使用了命令

adb shell input keyevent mouse

我找了半天mouse,也没有找到这个按键值,然后我看google input.java的 源代码也没有这个有关的知识,然后我猜测就是未知值,那么我直接adb shell input keyevent 0 不就可以了吗?于是我在代码构建按键,而不是用adb命令模式,每隔10秒发送一个未知按键,未知按键就是0,这个是android 代码里面定义的,这样子就实现屏幕常亮。。。这个操作不管什么类型的手机都能常亮,因为都一直在按键。

额外发现

我突然发现如果间隔50毫秒发送未知按键就导致我的手机无法锁屏,这个逻辑结合屏幕关闭,就可以导致用户无法操作手机。。。。。。 有点无敌啊。。。所以以后普通用户千万不要授权APP 具备ADB命令,现在手机可以直接wifi adb, 不需要连接,这样子就可能出现木马,强制控制手机行为了。。。。。
安全手机不要开启开发者模式,否则带来很大危险。