adb 与pad 交互方法

event

python 复制代码
import requests
import time
import random
import os

# http://fspcdiy.d33173.chshtzs.com/action.php
# 连接设备(有线直接连接,无线需先执行adb tcpip 5555)
os.system('adb devices')  # 验证连接


# 定义点击函数
def tap(x, y):
    os.system(f'adb shell input tap {x} {y}')


def check_status():
    # 添加随机参数和禁用缓存的请求头
    timestamp = int(time.time())
    rand = random.randint(0, 9999)
    url = f"http://fspcdiy.d33173.chshtzs.com/do.php?cmd=status&_={timestamp}{rand}"

    headers = {
        'Cache-Control': 'no-cache, no-store, must-revalidate',
        'Pragma': 'no-cache',
        'Expires': '0'
    }

    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            content = response.text.strip()
            if content.startswith("Current action: "):
                value = content[len("Current action: "):].strip()
                print('test:' + value)
                return value
        return None
    except requests.RequestException as e:
        print(f"请求出错: {e}")
        return None


def delete_action():
    # 同样为delete请求添加防缓存措施
    timestamp = int(time.time())
    rand = random.randint(0, 9999)
    delete_url = f"http://fspcdiy.d33173.chshtzs.com/do.php?cmd=delete&_={timestamp}{rand}"

    headers = {
        'Cache-Control': 'no-cache, no-store, must-revalidate',
        'Pragma': 'no-cache',
        'Expires': '0'
    }

    try:
        requests.get(delete_url, headers=headers)
    except requests.RequestException as e:
        print(f"删除操作出错: {e}")


def main():
    while True:
        value = check_status()

        if value and value != "No action stored":
            if value == "UP":
                print("UP")
                # 向上
                tap(1719, 510)
                time.sleep(3)
                delete_action()
            elif value == "DOWN":
                print("DOWN")
                # 向下
                tap(1719, 688)
                time.sleep(3)
                delete_action()
            elif value == "LEFT":
                print("LEFT")
                # 向左
                tap(1626, 606)
                time.sleep(3)
                delete_action()
            elif value == "RIGHT":
                print("RIGHT")
                # 向右
                tap(1800, 596)
                time.sleep(3)
                delete_action()
            elif value == "CLAMP":
                print("CLAMP")
                # 夹子
                tap(1000, 1132)
                time.sleep(3)
                delete_action()
            elif value == "FOOD1":
                print("FOOD1")
                # 动作1 上
                tap(285, 521)
                time.sleep(3)
                delete_action()
            elif value == "FOOD2":
                print("FOOD2")
                # 动作2 下
                tap(290, 704)
                time.sleep(3)
                delete_action()
            elif value == "FOOD3":
                print("FOOD3")
                # 动作3 左
                tap(195, 607)
                time.sleep(3)
                delete_action()
            elif value == "FOOD4":
                print("FOOD4")
                # 动作4 右
                tap(377, 608)
                time.sleep(3)
                delete_action()
            else:
                print(f"未知动作: {value}")

        time.sleep(3)


if __name__ == "__main__":
    main()

do.php

php 复制代码
<?php
// 定义存储文件路径
$storage_file = 'shared_action.txt';

if (isset($_GET['action'])) {
    file_put_contents($storage_file, $_GET['action']);
    echo "Action stored: " . htmlspecialchars($_GET['action']);
} elseif (isset($_GET['cmd'])) {
    $command = strtolower($_GET['cmd']);
    
    if ($command === 'status') {
        if (file_exists($storage_file)) {
            echo "Current action: " . htmlspecialchars(file_get_contents($storage_file));
        } else {
            echo "No action stored";
        }
    } elseif ($command === 'delete') {
        if (file_exists($storage_file)) {
            unlink($storage_file);
        }
        echo "Action deleted successfully";
    } else {
        echo "Invalid command";
    }
} else {
    // 显示使用说明
    echo "<h1>Action Management System</h1>";
    // ... 其余HTML代码 ...
}
?>
相关推荐
文人sec5 天前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
2501_916008896 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_916008899 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
鸽芷咕11 天前
MySQL Server 鸿蒙 PC 适配全记录:以混合工具链完成 C++23 交叉编译与 HNP 交付
adb·harmonyos·c++23
游戏开发爱好者814 天前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
实心儿儿14 天前
MySQL 的安装
数据库·mysql·adb
2601_9623004714 天前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发
python·adb·tkinter·android测试·gui自动化
flower_drop16 天前
基于 WebUSB 与 CDP:在浏览器端实现 Android 设备通信与无证书抓包实践
android·chrome·测试工具·adb·bug·edge浏览器
蜡台16 天前
# 已解决|MySQL 8\.4\.11 密码正确仍报错1045 \(28000\) Access denied 终极修复方案
android·mysql·adb
leoZ23116 天前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb