# Android TikTok Automation

Scanned on 2/7/2026

⚠️45/100 high

Android automation library with significant command injection vulnerabilities and unrestricted device control capabilities that could be exploited for malicious purposes.

## Security Analysis

This Android automation library presents HIGH security risks primarily due to command injection vulnerabilities and unrestricted device control. The _run_adb method accepts arbitrary arguments that are passed directly to subprocess, allowing potential attackers to execute malicious ADB commands. The library provides complete control over connected Android devices including UI manipulation, file access, and shell command execution without any authorization checks. The use of predictable temporary file paths creates race conditions. XML parsing without XXE protection could allow malicious XML to compromise the system. While the code avoids shell=True and includes timeouts, these positives are overshadowed by the critical command injection risk and lack of access controls. This plugin should NOT be installed without significant security hardening including input validation, command whitelisting, user consent mechanisms, and secure file handling.

## Security Findings

**critical - code-execution**  
Command injection vulnerability in _run_adb method - user-controlled parameters are passed directly to subprocess without sanitization  
Evidence:  
`cmd.extend(args) followed by subprocess.run(cmd, ...) - arbitrary ADB commands can be executed including shell commands`  
Recommendation: Implement strict input validation and whitelist allowed ADB commands. Use parameterized command construction instead of direct argument passing.

**high - code-execution**  
Unrestricted shell command execution through ADB - methods like tap, swipe, and dump_ui execute arbitrary shell commands on connected Android devices  
Evidence:  
`self._run_adb('shell', 'input', 'tap', str(x), str(y)) and self._run_adb('shell', 'uiautomator', 'dump', '/sdcard/ui_dump.xml')`  
Recommendation: Restrict shell commands to a predefined whitelist. Validate all coordinate inputs and file paths.

**high - filesystem**  
Hardcoded temporary file path /tmp/android_ui_dump.xml creates race condition and potential information disclosure vulnerability  
Evidence:  
`tmp_path = '/tmp/android_ui_dump.xml' - predictable path allows file hijacking attacks`  
Recommendation: Use tempfile.mkstemp() or tempfile.NamedTemporaryFile() to create secure temporary files with random names.

**medium - filesystem**  
Writes to device storage without path validation - could overwrite critical files on Android device  
Evidence:  
`self._run_adb('shell', 'uiautomator', 'dump', '/sdcard/ui_dump.xml') - fixed path on device storage`  
Recommendation: Validate and sanitize all file paths. Use application-specific directories with proper permissions.

**medium - code-execution**  
XML parsing without security restrictions could be vulnerable to XML External Entity (XXE) attacks  
Evidence:  
`tree = ET.parse(xml_path) - uses default XML parser without disabling external entities`  
Recommendation: Use defusedxml library or configure ET.parse to disable external entity processing: ET.XMLParser(resolve_entities=False)

**medium - other**  
No authentication or authorization checks - any code can control connected Android devices without user consent  
Evidence:  
`AndroidAutomation class provides full device control with no permission checks or user confirmation`  
Recommendation: Implement user consent mechanism before device operations. Add capability-based permissions system.

**low - other**  
Timeout set to 30 seconds could allow denial of service through hung commands  
Evidence:  
`subprocess.run(cmd, capture_output=capture_output, text=True, timeout=30)`  
Recommendation: Reduce timeout to 5-10 seconds for most operations. Make timeout configurable per operation type.

## ✅ Good Security Practices

- ✓ Uses subprocess.run instead of shell=True, preventing some shell injection attacks
- ✓ Includes timeout parameter to prevent indefinite hangs
- ✓ Verbose logging option helps with debugging and audit trails
- ✓ Type hints improve code clarity and reduce certain classes of bugs
- ✓ Structured error handling with return code checking

## Source Information

ClawHub Page: [clawhub.com/skills/android-tiktok-automation →](https://clawhub.com/skills/android-tiktok-automation)  
Source URL: [/Users/mladjanantic/.openclaw/workspace/skills/android-automation](/content/Users/mladjanantic/.openclaw/workspace/skills/android-automation/index.html)  
Code Size: 55,688 characters  
Semgrep Findings: 0
