Changelog

This page documents the version history and changes made to TrigDroid.

Version 1.0.0 (Current)

New Features:

  • Modern dual-layer architecture with SOLID principles

  • TypeScript Frida hooks with type safety

  • Comprehensive CLI interface using Click

  • Python API for programmatic usage

  • Type-safe configuration with Pydantic

  • Device management with AndroidDevice and DeviceManager

  • Pluggable test runners architecture

  • Dependency injection container with ServiceLocator

  • Extensive sensor manipulation capabilities

  • Network state control (WiFi, data, Bluetooth)

  • Frida runtime instrumentation support

  • Device property manipulation

  • Automated UI interaction testing

  • Comprehensive logging and changelog system

Architecture Improvements:

  • Layer 1: Public API (src/trigdroid/)

    • CLI Interface with rich device management

    • Python API with TrigDroidAPI class

    • Type-safe TestConfiguration

    • Comprehensive TestResult classes

    • AndroidDevice and DeviceManager wrappers

  • Layer 2: Infrastructure (src/TrigDroid_Infrastructure/)

    • Protocol-based abstractions (ILogger, ITestRunner, IAndroidDevice)

    • DI container with ServiceLocator

    • Pluggable test execution (SensorTestRunner, FridaTestRunner)

    • Application orchestrator for workflow coordination

  • TypeScript Frida Hooks (frida-hooks/)

    • Modern TypeScript implementation

    • Modular design with individual hook files

    • Type safety with @types/frida-gum

    • NPM build integration

Security Focus:

  • Designed specifically for defensive security research

  • Malware analysis capabilities

  • Authorized testing workflows

  • Isolated environment recommendations

Testing & Quality:

  • Comprehensive test suite with pytest

  • Unit tests with mocked dependencies

  • Integration tests for component interaction

  • Device tests requiring Android device/emulator

  • Frida tests for instrumentation features

  • Test coverage reporting

  • Code quality tools (black, isort, mypy, ruff, pylint)

Documentation:

  • Complete Sphinx documentation with Read the Docs theme

  • API reference documentation

  • User guides and tutorials

  • Development guidelines

  • Installation instructions

  • Troubleshooting guides

Development Tools:

  • Development environment setup with pip install -e “.[full,dev]”

  • Code formatting with black and isort

  • Type checking with mypy

  • Linting with ruff and pylint

  • Automated testing with pytest

  • Build system with hatch

Legacy Versions

Previous versions of TrigDroid used different architectures and implementation approaches. The 1.0.0 release represents a complete modernization of the framework with improved maintainability, testability, and extensibility.

Key Changes from Legacy:

  • Migration from monolithic to modular architecture

  • Introduction of dependency injection and service locator patterns

  • Type safety improvements with Pydantic and TypeScript

  • Modern Python packaging with pyproject.toml

  • Comprehensive testing infrastructure

  • Professional documentation system

Migration Guide

If you’re migrating from a legacy version of TrigDroid, please note the following breaking changes:

Command Line Interface:

  • New CLI structure using Click framework

  • Updated command arguments and options

  • New device management commands

Python API:

  • New TrigDroidAPI class replaces legacy interfaces

  • TestConfiguration replaces old configuration methods

  • Updated result handling with TestResult classes

Configuration:

  • YAML configuration support

  • Type-safe configuration validation

  • New configuration file format

Testing:

  • New test runner architecture

  • Updated Frida hook implementation

  • Improved error handling and logging

For detailed migration instructions, please refer to the development guide or contact the development team.