这是一款名字叫“Zen Idle”的游戏。来尝试下自动刷钱
 
【adb获取包名以及当前运行的activity】
| 1 | adb shell dumpsys window | findstr mCurrentFocus | 
输出:
| 1 | mCurrentFocus=Window{98555ab u0 com.TechTreeGames.ZenIdle/com.unity3d.player.UnityPlayerActivity} | 
由包名获取apk路径
| 1 | adb shell pm path io.ionic.starter | 
【adb命令行启动应用程序】
| 1 | adb shell am start -n 包名/类名 | 
如:
| 1 | adb shell am start -n com.android.music/com.android.music.MusicBrowserActivity | 
【adb shell 修改系统时间】
下面命令亲测可用,假如当前时间   01月05号08点23分改成    01月05号12点23分
| 1 | adb shell date "01051223" | 
【按钮的位置】
找到开发者选项,开启“指针位置”,在游戏里找到按钮的范围
Claim按钮
X: 390-690        300        540
Y: 1212-1362    150        1287
关闭广告按钮
x 915
y 835
【Android adb 模拟滑动 按键 点击事件】
关于tap的话,他模拟的是touch屏幕的事件,只需给出x、y坐标即可。
此x、y坐标对应的是真实的屏幕分辨率,所以要根据具体手机具体看,比如你想点击屏幕(x, y) = (250, 250)位置:
| 1 | adb shell input tap 250 250 | 
此处我:
| 1 | input tap 540 1287 | 
| 1 | input tap 915 835 | 
【总命令】
| 1 | adb shell date "01010601" ; am start -n com.TechTreeGames.ZenIdle/com.unity3d.player.UnityPlayerActivity ; sleep 1 ; input tap 540 1287 ; sleep 1 ; date "01010101" ; input keyevent 3 | 
加点循环
| 1 | for I in $(seq 1 20);do | 
写入sh脚本,懒得每次输入了
| 1 | echo 'for I in $(seq 1 20);do\n echo $I/20 ; date "01010601" ; am start -n com.TechTreeGames.ZenIdle/com.unity3d.player.UnityPlayerActivity ; sleep 1 ; input tap 915 835 ; input tap 915 835 ; input tap 540 1287 ; sleep 1 ; date "01010101" ; input keyevent 3\ndone' >zen.sh | 
【adb 安装卸载程序】
adb root 失败,提示adbd cannot run as root in production builds
网上说安装adbd-Insecure-v2.00.apk,亲测无效。还是每次adb shell然后su吧。
| 1 | adb install ./adbd-Insecure-v2.00.apk | 
【尝试只改时间】
| 1 | date "01010101" ; date "01010601" | 
并不能让程序显示奖励窗口(必须先退出这个页面再进入)
并不能让程序显示奖励窗口(必须先退出这个页面再进入)
【进一步的集成】
通过命令行参数决定要循环几次
| 1 | echo 'CNT=10 | 
然后:
| 1 | adb shell | 
【手机闹钟BUG级响起】
无解
可以关闭闹钟
【尝试只在date的时候用su执行】
| 1 | mkdir /sdcard/_sh | 
完美~
但是会每次date的时候显示“已授予shell超级用户权限”,看着很难受
先su再执行脚本就不会了
可以在电脑上adb shell进去执行脚本,也可以用手机啦
【视频演示】
