NexaFlow
vv3.91.3About Application
NexaFlow
NexaFlow is an Android automation application built with Kotlin and Jetpack Compose. Tasks combine triggers, constraints, actions and optional exit behavior. Some actions use ordinary Android APIs; others require permissions, accessibility, a system role, Shizuku or root. Availability depends on Android version, hardware and the device vendor.
Current implementation
The source catalog contains 57 trigger enum entries (55 in the general picker) and 176 action enum entries. CONNECTIVITY is retained for older tasks and PLUGIN_EVENT uses a separate plugin flow. The sensor trigger offers 12 modes; these are configurations of one trigger, not 12 additional enum entries. Counts describe implemented catalog coverage, not certification that every function works on every phone.
- Schedules, app/device events, connectivity, location, notifications, messages and hardware sensor conditions.
- Ordered actions, workflow context, constraints, execution history, cooldowns and exit/revert behavior.
- Device controls with capability checks and explicit failure reporting.
- Capability-Adaptive Execution: device-state actions (Wi-Fi, Bluetooth, mobile data, hotspot, NFC, location, airplane mode, rotation, brightness, screen timeout, Do Not Disturb, Data Saver) are expressed as precise semantic operations (
WIFI_SET_STATE,DND_GET_STATE, …). A singleCapabilityRouterpicks the least-privileged strategy that is available on the current device — public Android API, settings permission, Shizuku, root, or a documented Settings hand-off — guided by verified per-device evidence, strategy health and explicit user policy. Every state change is verified by reading the actual post-condition; an uncertain transport outcome is reconciled by observation instead of being guessed, and the router never falls back blindly after a possible side effect. - Eight data action families: text, encoding, hashing, random values, decimal arithmetic, dates, JSON and arrays. Outputs can feed later actions in the same run.
- HTTPS requests with configurable method, body, headers, timeout, retries and output path. Private-network destinations require explicit opt-in.
- Local authenticated webhooks and revocable task links. Custom-scheme execution requires confirmation.
- Full backup and single-task sharing. Imported tasks stay disabled for review; external execution tokens are removed.
- Room database schema 21, explicit data-preserving migrations, durable agent provenance/audit/idempotency ledgers, DataStore preferences, widgets and a foreground monitoring service.
See the generated catalog, configuration reference, security model and validation record.
Requirements and installation
- Android 8.0 / API 26 minimum; compile and target SDK 37.
- Download artifacts from GitHub Releases. Retain the same signing identity when upgrading an existing installation.
- Grant permissions from the feature that needs them. Root and Shizuku are optional capability providers. Backend-specific commands require their exact provider; Shizuku execution also requires its UserService connection. Some legacy options are hidden when permissions are missing; consistent locked-row discovery is still being implemented.
- Exact alarms, background restrictions and OEM power management can affect delivery. A foreground service does not guarantee uninterrupted execution.
- Sensor features require the corresponding hardware. Pressure, humidity, ambient temperature and hinge sensors are uncommon on many phones.
Build and verify
Use the checked-in Gradle wrapper. Install Android SDK platform 37 and configure ANDROID_HOME or local.properties. Gradle runs with Java 17 or newer; Robolectric tests using recent Android SDKs require the configured Java 21 toolchain. Dependency checksums are enforced.
./gradlew.bat testDebugUnitTest assembleDebug ./gradlew.bat detekt lintDebug python scripts/auto_fix.py --check python scripts/check_strings_parity.py python scripts/audit_catalog_and_releases.py catalog
On Linux/macOS use ./gradlew. Release signing is configured using the NEXAFLOW_KEYSTORE_* and NEXAFLOW_KEY_* environment variables or ignored local keystore properties. Never commit private keys or passwords. Untagged ad-hoc builds may use debug signing; version-tag CI requires production credentials.
Scope and limitations
NexaFlow has not demonstrated overall superiority over Automate. Automate advertises more than 400 blocks; its blocks and this project's trigger/action enums are different units. A count alone does not establish parity in expressions, flow control, integrations, reliability or usability. The comparison and roadmap identifies what remains unverified.
UI resources cover English plus 10 translated-locale directories. Newly added data/sensor configuration and some security copy currently use English fallback in other locales; key parity is not translation completion. No claim of full device coverage, complete vendor compatibility or universal restoration is made.
Historical plans and audits remain in the repository for provenance. The documentation index distinguishes the current guides from historical/reference material. Release changes are recorded in English in CHANGELOG.md.
Development
See architecture, contributing, required checks, and release procedure. Report reproducible issues with Android version, device build, permissions and a minimal task; redact tokens and private payloads.
Release Notes & Changelog
Fixed - AI provider diagnostics and network-mode configuration
- Preserve HTTP response status codes during provider connection checks and show targeted, localized guidance for authentication failures, missing endpoints or models, and rate limits.
- Make provider verification errors more actionable while keeping API credentials out of diagnostics and application logs.
- Route mobile network-mode configuration through the live SIM and modem capability editor instead of the generic schema form, preventing unsupported or confusing network settings.
- Add regression coverage for provider error classification and the network-mode editor routing decision.
Validation
- Targeted unit-test suites for automation-builder, settings, and ROM network-mode policy passed locally; debug APK assembly succeeded.
- Tagged-release CI is the final validation gate for this release.
Quality evidence
The tag workflow gates publication on the following automated checks. Consult the exact tag run and validation record for results; these checks do not establish physical-device coverage:
- Android Lint (zero-tolerance: UnusedResources, MissingTranslation, ExtraTranslation, UnusedIds, CheckResult, HardcodedText, TypographyDashes) and Detekt static analysis.
- Catalog parity gates: every
TriggerTypeandActionTypeenum value must exist exactly once in the builder picker (restricted entries are pinned explicitly). - Full unit-test suite, including Room migration, scheduler, lifecycle, and recovery regression coverage.
- Release build with R8 full shrinking, APK signature verification (v2/v3 schemes and certificate-fingerprint match against the production keystore), 16 KB page-size alignment check, zipalign verification, bundletool AAB validation, and Gradle dependency verification (SHA-256 checksums for every artifact).
- Tag hygiene: the tag must match the newest
CHANGELOG.mdentry, so the notes below are the actual, reviewed change record for this release.
Install
- Download
NexaFlow-<version>.apkfrom the assets below and install it. - Android updates require a compatible version code and the same signing certificate. Back up important tasks before upgrading.
- Pre-release tags (
alpha/beta/rc) are marked as pre-releases automatically.
Documentation
Declared Android Permissions
2 totalStandard Android Permissions
Specifications
Install via ShizuStore to enable automatic updates and silent installations using Shizuku.
More in Automation
Other applications in this category
vFlow
ChaoMixian
Visual automation tool that combines tapping, recognition, branching, and system actions into approachable workflows