用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/rdmptv/AdbAutoPlayer --skill adb-karrot命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Base navigation patterns for Android device automation - gestures, waits, and UI interaction
Screen understanding with OCR and template matching for Android device automation
Meta-tool for rapid adb-* skill creation from templates
基于 SOC 职业分类
正在显示 SKILL.md
| name | adb-karrot |
| description | Karrot app automation - bypass Play Integrity detection, login, and interaction workflows |
| version | 1.0.0 |
| modularized | true |
| scripts_enabled | true |
| tier | 3 |
| category | adb-app-automation |
| last_updated | "2025-12-01T00:00:00.000Z" |
| compliance_score | 100 |
| dependencies | ["adb-screen-detection","adb-navigation-base","adb-workflow-orchestrator","adb-magisk"] |
| auto_trigger_keywords | ["karrot","play-integrity","api-hooking","bypass","login"] |
| scripts | [{"name":"adb-karrot-launch.py","purpose":"Launch Karrot app","type":"python","command":"uv run .claude/skills/adb-karrot/scripts/adb-karrot-launch.py","zero_context":true,"version":"1.0.0","last_updated":"2025-12-01T00:00:00.000Z"},{"name":"adb-karrot-check-detection.py","purpose":"Check if app detects emulator/spoofed environment","type":"python","command":"uv run .claude/skills/adb-karrot/scripts/adb-karrot-check-detection.py","zero_context":false,"version":"1.0.0","last_updated":"2025-12-01T00:00:00.000Z"},{"name":"adb-karrot-test-login.py","purpose":"Test login with bypass, verify successful authentication","type":"python","command":"uv run .claude/skills/adb-karrot/scripts/adb-karrot-test-login.py","zero_context":false,"version":"1.0.0","last_updated":"2025-12-01T00:00:00.000Z"}] |
| color | cyan |
Karrot App Automation & Play Integrity Bypass
What It Does: Automates Karrot app interactions. Enables Play Integrity API bypass via Magisk hooks to allow app usage on unsupported environments.
Core Capabilities:
When to Use:
Launch Karrot application.
# Launch on default device
uv run .claude/skills/adb-karrot/scripts/adb-karrot-launch.py
# Specify device
uv run .claude/skills/adb-karrot/scripts/adb-karrot-launch.py --device 127.0.0.1:5555
# Wait for login screen
uv run .claude/skills/adb-karrot/scripts/adb-karrot-launch.py \
--wait-text "Login" \
--timeout 10
# JSON output
uv run .claude/skills/adb-karrot/scripts/adb-karrot-launch.py --json
Check if Karrot detects emulator or spoofed environment.
# Quick detection check
uv run .claude/skills/adb-karrot/scripts/adb-karrot-check-detection.py \
--device 127.0.0.1:5555
# Detailed check (launch and monitor)
uv run .claude/skills/adb-karrot/scripts/adb-karrot-check-detection.py \
--device 127.0.0.1:5555 \
--launch \
--detailed
# Check for error-18 (PlayIntegrity CLIENT_TRANSIENT_ERROR)
uv run .claude/skills/adb-karrot/scripts/adb-karrot-check-detection.py \
--device 127.0.0.1:5555 \
--check-logcat
# JSON output
uv run .claude/skills/adb-karrot/scripts/adb-karrot-check-detection.py --json
Test login functionality with bypass enabled.
uv run .claude/skills/adb-karrot/scripts/adb-karrot-test-login.py \
--device 127.0.0.1:5555 \
--email @example.com \
--password testpass123
uv run .claude/skills/adb-karrot/scripts/adb-karrot-test-login.py \
--device 127.0.0.1:5555 \
--email @example.com \
--password testpass123 \
--verify-success \
-- 30
uv run .claude/skills/adb-karrot/scripts/adb-karrot-test-login.py \
--device 127.0.0.1:5555 \
--email @example.com \
--password testpass123 \
--check-bypass
uv run .claude/skills/adb-karrot/scripts/adb-karrot-test-login.py --json
COMPLETE PLAY INTEGRITY BYPASS WORKFLOW - Master workflow coordinating all steps from Magisk setup through Karrot login verification.
name: Karrot Play Integrity Bypass - Complete Workflow
description: Full end-to-end bypass setup and validation
version: 1.0.0
parameters:
device: "127.0.0.1:5555"
module_path: "/sdcard/PlayIntegrityFork.zip"
test_email: "test@karrot.example.com"
test_password: "bypasstest123"
timeout: 30
phases:
# PHASE 1: Setup Magisk with Zygisk
- id: phase1_magisk_setup
name: "Phase 1: Setup Magisk with Zygisk"
steps:
- id: launch_magisk
action: adb-magisk-launch
params:
device: "{{ device }}"
wait_text: "Modules"
timeout: 10
- id: navigate_settings
action: adb-tap
params:
x: 100
y: 200
device: "{{ device }}"
- id: enable_zygisk
action: adb-magisk-enable-zygisk
params:
device: "{{ device }}"
auto_reboot: false
# PHASE 2: Install PlayIntegrityFork Module
- id: phase2_install_module
name: "Phase 2: Install PlayIntegrityFork Module"
steps:
- id: launch_magisk_again
action: adb-magisk-launch
params:
device: "{{ device }}"
- id: navigate_modules
action: adb-tap
params:
x: 100
y: 100
device: "{{ device }}"
- id: tap_install_fab
action: adb-tap
params:
x: 400
y: 800
device: "{{ device }}"
- id: wait_file_picker
action: adb-wait-for
params:
method: text
target: "Select"
timeout: 5
- id: select_module_file
action: adb-file-select
params:
path: "{{ module_path }}"
- id: wait_install_complete
action: adb-wait-for
params:
method: text
target: "Installation complete"
timeout: "{{ timeout }}"
# PHASE 3: Verify Magisk Module
- id: phase3_verify_module
name: "Phase 3: Verify Module Installation"
steps:
- id: check_module_list
action: adb-magisk-launch
params:
device: "{{ device }}"
wait_text: "PlayIntegrityFork"
timeout: 10
- id: verify_module_enabled
action: adb-screenshot-capture
params:
device: "{{ device }}"
# PHASE 4: Launch Karrot and Check Pre-Bypass
- id: phase4_check_prebypas
name: "Phase 4: Check Detection Pre-Bypass"
steps:
- id: launch_karrot
action: adb-karrot-launch
params:
device: "{{ device }}"
timeout: 10
- id: check_detection_initial
action: adb-karrot-check-detection
params:
device: "{{ device }}"
detailed: true
# PHASE 5: Configure PlayIntegrityFork
- id: phase5_configure_module
name: "Phase 5: Configure PlayIntegrityFork Module"
steps:
- id: wait_karrot_ready
action: adb-wait-for
params:
method: text
target: "Login"
timeout: 10
- id: note_configuration_needed
action: adb-screenshot-capture
params:
device: "{{ device }}"
# PHASE 6: Test Login with Bypass
- id: phase6_test_bypass
name: "Phase 6: Test Login with Bypass Active"
steps:
- id: test_login
action: adb-karrot-test-login
params:
device: "{{ device }}"
email: "{{ test_email }}"
password: "{{ test_password }}"
verify_success: true
check_bypass: true
timeout: "{{ timeout }}"
# PHASE 7: Verify Bypass Success
- id: phase7_final_verification
name: "Phase 7: Final Verification"
steps:
- id: check_detection_after
action: adb-karrot-check-detection
params:
device: "{{ device }}"
check_logcat: true
- id: wait_profile_screen
action: adb-wait-for
params:
method: text
target: "Profile"
timeout: 5
recovery:
# Retry on module installation failure
- on_error: phase2_install_module
action: retry
max_attempts: 2
delay: 3
# Fallback for detection check
- on_error: phase4_check_prebypas
action: adb-screenshot-capture
then: continue
# Retry login test
- on_error: phase6_test_bypass
action: retry
max_attempts: 2
delay: 2
Simplified login workflow (faster, for repeated testing).
name: Karrot Login Test
description: Quick login workflow for bypass validation
parameters:
device: "127.0.0.1:5555"
email: "test@karrot.example.com"
password: "testpass123"
phases:
- id: launch_and_login
name: "Launch and Login"
steps:
- id: launch
action: adb-karrot-launch
params: {device: "{{ device }}"}
- id: wait_login_screen
action: adb-wait-for
params: {method: text, target: "Email", timeout: 5}
- id: test_login
action: adb-karrot-test-login
params:
device: "{{ device }}"
email: "{{ email }}"
password: "{{ password }}"
verify_success: true
# Full end-to-end bypass implementation
uv run .claude/skills/adb-workflow-orchestrator/scripts/adb-run-workflow.py \
--workflow .claude/skills/adb-karrot/workflows/karrot-bypass-playintegrity.toon \
--param device=127.0.0.1:5555 \
--param module_path=/sdcard/PlayIntegrityFork.zip \
--verbose
# Fast login test for bypass validation
uv run .claude/skills/adb-workflow-orchestrator/scripts/adb-run-workflow.py \
--workflow .claude/skills/adb-karrot/workflows/karrot-login.toon \
--param device=127.0.0.1:5555 \
--param email=test@example.com
# Monitor detection status during testing
watch -n 5 "uv run .claude/skills/adb-karrot/scripts/adb-karrot-check-detection.py \
--device 127.0.0.1:5555 \
--check-logcat"
Located in ./analysis/:
detection-report.md - Detailed detection mechanism analysisbypass-strategy.md - Bypass approach and reasoningplayintegrity-findings.md - Play Integrity API researchDepends On:
adb-magisk (Magisk setup and module installation)adb-screen-detection (screenshot and OCR verification)adb-navigation-base (gesture automation)adb-workflow-orchestrator (workflow coordination)Used By:
Google Play Integrity API
├─ deviceIntegrity()
├─ serverIntegrity() (hardcoded token)
├─ 1000ms timeout
└─ Error -18: CLIENT_TRANSIENT_ERROR (emulator)
Persona SDK Wrapper
└─ Calls integrity verification
PlayIntegrityFork Bypass
└─ Hooks Play Services
└─ Returns spoofed device signature
Version: 1.0.0 Status: ✅ App-Specific Tier Scripts: 3 Workflows: 2 Last Updated: 2025-12-01 Tier: 3 (App-Specific)