利用adb shell和node.js实现抖音自动抢红包功能
2018-03-07 15:30
826 查看
昨天回家发现家里人都在用抖音抢红包,看了下操作逻辑,发现规律后觉得可以用软件控制点红包,于是做了以下尝试。
adb
搭建过程网上很多,就不赘述啦~
我们模拟逻辑如下:
1. 点击屏幕中央,如果有红包打开红包,没有红包则暂停视频。
2. 点击返回按钮,如果有红包关闭红包界面,没有红包提示再按一次退出(其实没退出)。
3. 进行上滑操作,进入下一个视频。
点击、返回、上滑,就这么三步行为,无论有红包没红包都成立,只要计算好时间就行。
touch.js
打开手机的开发者模式,启动
如果发现抖音每20秒上滑一次,说明成功啦~
其实就是等于执行脚本,shell命令了。
我们利用它来执行
PS:做了这么久手机,今天才发现这个好玩的功能……汗……
adb shell 可以装apk、看手机信息、操作手机文件、模拟点击行为等功能,是非常强大的。我们这里主要是要模拟点击行为
下面罗列下各功能:
更多按键对应值可以看Android keyevent 对应的值
通过这些命令我们可以对手机进行一些简单操作啦~
最后吐槽下:抖音的红包真的少,昨天刷了3个小时就几毛钱,不够电费的说。就当娱乐吧~
运行环境
node.jsadb
搭建过程网上很多,就不赘述啦~
抢红包逻辑
逻辑很简单,在抖音视频播完之后如果是红包视频,会跳出红包。我们模拟逻辑如下:
1. 点击屏幕中央,如果有红包打开红包,没有红包则暂停视频。
2. 点击返回按钮,如果有红包关闭红包界面,没有红包提示再按一次退出(其实没退出)。
3. 进行上滑操作,进入下一个视频。
点击、返回、上滑,就这么三步行为,无论有红包没红包都成立,只要计算好时间就行。
代码
下面是一段node.js代码:
touch.js
var process = require('child_process'); function exec(shell) { process.exec(shell,function (error, stdout, stderr) { if (error !== null) { console.log('exec error: ' + error); } }); } function click() { console.log('click') exec(`adb shell input tap 400 600`) setTimeout(back, 1000) } function swipe() { console.log('swipe') exec(`adb shell input swipe 400 800 400 0 500`) setTimeout(click, 20000) } function back() { console.log('back') exec(`adb shell input keyevent 4`) setTimeout(swipe, 1000) } swipe()
打开手机的开发者模式,启动
USB调试,如果是小米请另外打开
USB调试(安全设置)。连接手机,打开抖音主界面。将这个js保存到本地,使用node执行即可。
$ node touch.js
如果发现抖音每20秒上滑一次,说明成功啦~
原理
类似使用 adb shell 来操作手机的文章还有操作跳一跳等,下面说下原理。child_process.exec(command[, options][, callback])
该方法功能为衍生一个 shell,然后在 shell 中执行 command,且缓冲任何产生的输出。具体可以看参考文档其实就是等于执行脚本,shell命令了。
我们利用它来执行
adb shell命令。
adb shell
adb 是电脑连接手机的开发工具,所有电脑对手机的操作其实都是adb 完成的,包括各种手机助手帮你装 APP 也是。PS:做了这么久手机,今天才发现这个好玩的功能……汗……
adb shell 可以装apk、看手机信息、操作手机文件、模拟点击行为等功能,是非常强大的。我们这里主要是要模拟点击行为
adb shell input。
下面罗列下各功能:
// 输入文本 content $ adb shell input text “hello” // 点击返回按钮 keynumber $ adb shell input keyevent 4 // 点击屏幕某个点 x y $ adb shell input tap 400 400 // 滑动 x1 y1 x2 y2 time $ adb shell input swipe 400 800 400 0 500 // 下面三个不太清楚,再研究 $ adb shell input press $ adb shell input roll $ adb shell input tmode
更多按键对应值可以看Android keyevent 对应的值
通过这些命令我们可以对手机进行一些简单操作啦~
最后
这其实是个很简单的逻辑,但是给我很多启发,以后再有什么简单的操作就可以使用adb和node来重复执行啦~最后吐槽下:抖音的红包真的少,昨天刷了3个小时就几毛钱,不够电费的说。就当娱乐吧~
相关文章推荐
- 利用adb shell和node.js实现抖音自动抢红包功能(推荐)
- Android利用AccessibilityService实现抢红包,微信自动回复等功能思路
- 利用百度OCR的node.js的接口实现文字识别的功能
- 利用Node.JS实现邮件发送功能
- 模仿微信摇一摇功能 利用js来实现微信摇一摇来自动更换网页背景的功能
- 利用Node.JS实现邮件发送功能
- 利用node.js实现自动生成前端项目组件的方法详解
- android 利用accessibilityservice 实现自动发红包功能 (让收红包的人手抽筋)(密码不能自动输入,可以开启指纹支付)
- 【转】利用js来实现微信摇一摇来自动更换网页背景的功能
- js 利用html2canvas实现截图功能
- 利用js实现对页面的自动刷新
- ant design+node.js+mongoose实现一个简单的注册登录功能
- 利用python微信库itchat实现微信自动回复功能
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- 利用JS自动打开页面上链接的实现代码
- 利用Nginx实现反向代理Node.js的方法详解
- 微信自动抢红包的实现(Demo已增加查看TopActivity功能)
- 利用JS实现点击按钮后图片自动切换的简单方法
- 利用JS实现表单的自动提交
- Node.js实现的简易网页抓取功能示例