grpc-based remote device control with client-server architecture
Establishes secure gRPC communication channels between a Python client and an Android device server, enabling structured RPC calls for device automation. The architecture uses Protocol Buffers (proto3) service definitions to define service interfaces, with the client maintaining persistent connections and session state. This design abstracts away low-level ADB complexity and provides type-safe, versioned API contracts between client and device.
Unique: Uses gRPC with Protocol Buffers for type-safe, versioned RPC contracts instead of REST or raw socket communication, enabling structured automation at scale with built-in serialization guarantees and service definition versioning
vs alternatives: More reliable and scalable than raw ADB scripting because gRPC provides connection pooling, automatic retries, and type safety; more efficient than REST-based approaches due to binary Protocol Buffer serialization
ui element selection and interaction via accessibility hierarchy inspection
Inspects the Android accessibility tree (UI hierarchy) to locate elements by text, resource ID, class type, or XPath patterns, then executes touch interactions (click, long-press, swipe) on those elements. The framework parses the accessibility hierarchy returned by UIAutomator2 or similar services, builds an in-memory tree representation, and maps user-specified selectors to concrete element coordinates for interaction. This approach enables reliable element targeting even when layouts change, as long as accessibility attributes remain stable.
Unique: Leverages Android's native Accessibility API and UIAutomator2 framework for robust element selection instead of image recognition or coordinate-based clicking, enabling selector-based automation that survives UI layout changes
vs alternatives: More reliable than image-based automation (Appium with OpenCV) because it uses semantic element attributes; more maintainable than coordinate-based scripts because selectors adapt to layout changes
openvpn and ssh remote access configuration for secure device connectivity
Configures OpenVPN connections and SSH tunnels on the Android device to enable secure remote access and network isolation. The framework manages VPN configuration files, SSH key setup, and connection lifecycle, allowing automation scripts to route device traffic through VPN or establish secure tunnels to remote servers. This enables testing of VPN-dependent apps and secure communication scenarios.
Unique: Integrates OpenVPN and SSH configuration management directly into the automation framework with gRPC APIs, eliminating manual VPN setup and enabling programmatic network isolation for security testing
vs alternatives: More integrated than manual VPN configuration because it automates setup and lifecycle management; more flexible than device-level VPN settings because it allows per-test VPN configuration
selinux policy manipulation and security context management
Reads and modifies SELinux (Security-Enhanced Linux) policies on the Android device to enable or disable security restrictions. The framework provides APIs to query current SELinux mode, modify policies for specific processes or files, and temporarily disable SELinux for testing purposes. This enables security testing and bypassing of security restrictions for authorized penetration testing.
Unique: Provides programmatic SELinux policy manipulation via gRPC APIs, enabling automated security testing and policy modification without manual command-line intervention
vs alternatives: More flexible than device-level SELinux settings because it allows fine-grained policy modification; more reliable than shell-based policy changes because it uses structured APIs with error handling
magisk module integration for system-level modifications and root access management
Integrates with Magisk framework to install and manage system-level modifications on the Android device, enabling root access, module installation, and system behavior customization without modifying the system partition. The framework provides APIs to query installed Magisk modules, install new modules, and manage Magisk settings. This enables advanced customization and testing scenarios that require system-level changes.
Unique: Provides programmatic Magisk module management via gRPC APIs, enabling automated system-level customization without manual Magisk app interaction
vs alternatives: More flexible than Xposed modules because Magisk works on modern Android versions without custom ROMs; more reliable than direct system partition modification because Magisk preserves system integrity
xposed framework integration for method hooking and system behavior modification
Integrates with Xposed framework to install and manage Xposed modules for system-wide method hooking and behavior modification. The framework provides APIs to query installed Xposed modules, manage module activation, and interact with Xposed-based instrumentation. This enables deep system-level testing and behavior modification on devices running Xposed.
Unique: Provides programmatic Xposed module management via gRPC APIs, enabling automated system-level method hooking on older Android versions
vs alternatives: More integrated than manual Xposed module installation because it automates setup and lifecycle management; less relevant than Magisk/Frida for modern Android versions due to Xposed's limited compatibility
application lifecycle management with permission and instrumentation control
Installs, launches, stops, and uninstalls Android applications programmatically, with fine-grained control over permissions and instrumentation hooks. The framework wraps ADB package manager commands and Android Activity Manager APIs, allowing scripts to grant/revoke permissions, enable/disable components, and inject instrumentation for monitoring app behavior. This enables automated app deployment, permission testing, and behavioral analysis without manual device interaction.
Unique: Provides programmatic permission and instrumentation control via gRPC instead of requiring manual ADB commands, enabling permission-based test matrix automation and behavioral monitoring without shell scripting
vs alternatives: More flexible than Appium's basic app management because it exposes fine-grained permission control and instrumentation hooks; more reliable than shell-based ADB scripts because it uses structured RPC calls with error handling
network traffic interception and manipulation via mitm proxy integration
Intercepts and modifies HTTP/HTTPS traffic from the Android device using an integrated MITM (Man-in-the-Middle) proxy, allowing inspection of request/response payloads, header manipulation, and response injection. The framework configures the device's global proxy settings or per-app proxy rules, routes traffic through a proxy server (e.g., mitmproxy), and exposes APIs to inspect, filter, and modify traffic in real-time. This enables security testing, API contract validation, and behavioral analysis without modifying app code.
Unique: Integrates MITM proxy configuration directly into the automation framework with gRPC APIs for traffic inspection and modification, rather than requiring separate proxy server setup and manual traffic analysis tools
vs alternatives: More integrated than manual mitmproxy setup because it automates proxy configuration and provides programmatic traffic filtering; more comprehensive than Appium's limited network mocking because it captures real traffic and supports response injection
+6 more capabilities