技术宅改变世界 技术宅改变世界

你也是个成熟的手机了,要学会自己充电了

in Geeks read (3919) 文章转载请注明来源!

很多人都有长时间不用的手机,弄好了短信转发后,又想不起来给他们充电。这时候就要大声呵斥!都是成熟的手机了,要学会自己给自己充电。

准备

  • 一个可以远程开关的插座(这里选了公牛的GN-F1331,这里说下,充电头不能太高,否则插进去盖子盖不上。。。这个时候苹果祖传的5V1A充电头就派上用场了)
  • 一台需要充电的手机
  • 一台带无线网卡的电脑

抓取远程开关数据包

  • 这里选用的公牛的GN-F1331,先下载小京鱼APP进行绑定,
  • 绑定完后,先试下能否开关。
  • 开始抓包
  • 电脑先打开个WIFI AP。WIN10系统下只要有无线网卡,都可以打开AP,设置-网络和internet-移动热点,把与其他设备共享我的internnet勾上。
    AP.png
  • 将手机连接上电脑AP。
  • 使用Wireshark抓包。
  • 这里需要确定电脑跟公牛插座在同一个局域网下。
  • 确实公牛插座在局域网下的IP。
  • 输入筛选规则ip.dst==192.168.1.99192.168.1.99替换成插座局域网IP。
    抓包.png
  • 在APP上按下开关,确定开关的包
  • 复制包内容
    TIM截图20190622095321.png
  • 拿到数据xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • 这个包每次都是不一样的,但是并没有校验重放,暂时无法解析数据格式,有兴趣的可以研究下,而且小京鱼有SDK开放。

模拟发送

  • 要确定的包是否有用,需要先发送一遍
  • windows可以使用herculessockettest,linux使用nc
  • 这边直接使用手机测试
  • 手机打开adb权限,下载platform-tools
  • adb shell 进入shell界面
  • 先输入nc看下命令是否存在,如果不存在可能需要安装busybox
  • 发送UDP报文

    echo 'xxxxxxx' | xxd -r -p | timeout 1  nc -u 192.168.1.99 80
    # xxxxxxx替换成上面抓到的数据。
    # xxd -r -p将数据转为16进制
    # timeout 1 表示1s后结束,因为nc发送完成后不会自己结束。
    # nc -u 表示发送udp数据
    # 192.168.1.99替换成插座的IP地址
  • 发送完后会发现插座开或者关了。

使用tasker实现自动充电

  • 新建配置文件,选择事件,搜索电量变化,优先级不管,直接返回。
  • 新建任务,点击右下角的按钮新建,选择代码-运行shell命令
  • 将模拟发送时候使用的shell命令复制进去,需要确定手机有nc命令,没有需要安装busybox
  • 找到if,点击+,左值输入%BATT,如果当前编辑命令是开插座,选择判断条件数字:小于,值输入25,表示电量低于25%自动打开插座。
  • 保存,再次新建,选择代码-运行shell命令。依据上面添加当电量大于多少时关闭插座。
taskerGN-F1331busyboxnetcatandroid
发表新评论
博客已萌萌哒运行
© 2024 • Powered by Typecho • Theme for yotu
PREVIOUS NEXT
雷姆
拉姆