NexaFlow v3.81.0
Added
- Package operations migrated to the semantic router (Phase B). Force-stop
(APPLICATION_CLOSE_APP,SYSTEM_FORCE_STOP_APP), clear-data
(SYSTEM_CLEAR_APP_DATA), and package enable/disable (SYSTEM_ENABLE_APP,
SYSTEM_DISABLE_APP) now execute as typed semantic operations
(PACKAGE_FORCE_STOP,PACKAGE_CLEAR_DATA,PACKAGE_SET_ENABLED_STATE)
through the Shizuku and Root typed strategies — closedpm/amargv over
the UserService AIDL, never workflow-supplied shell text. - Real package-state read-back. A new bounded
ReadPackageEnabledState
privileged operation (pm list packages -d, one deterministic output line)
gives verification and UNKNOWN-reconciliation an actual post-condition read;
the public-API strategy contributesPackageManagerenabled-setting reads,
so a Shizuku/Root-originated UNKNOWN can be settled through the Android API
when available. Unexpected output shapes stay honest-null, never guesses. - Honest failure semantics. A package dispatch that may have landed before
a transport drop surfaces as UNKNOWN and reconciles by reading state instead
of blind re-execution;PACKAGE_CLEAR_DATAis registered with
UNSUPPORTEDcompensation (data destruction is irreversible) and HIGH risk. - Legacy-config compatibility. The historical
package/packageName
config aliases resolve in the mapper;SYSTEM_ENABLE_APP/SYSTEM_DISABLE_APP
carry their intent in the action type for pre-configVersion automations;
unparseable explicit flags are rejected rather than defaulted.
Changed
OperationRegistrygrows to 32 registered operations (28 state pairs plus
the four package operations); parity gates extended with a package
counterpart test, an honest-compensation assertion for clear-data, and the
documented privileged-only exception for package writes.
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.