NexaFlow v3.78.0
Changed
- Product-neutral codebase (vendor decoupling) — NexaFlow no longer names
commercial ROMs, OEMs or devices anywhere in its code, resources, UI or docs.
The engine reasons about capability tiers, never products:RomFamilyredefined from 27 vendor-named entries to 8 neutral
capability tiers (CUSTOM_ROM_PRIVILEGED,CUSTOM_ROM_PRIVACY,
OEM_SKIN_PRIVILEGED,OEM_SKIN,OEM_STOCK,STOCK_GOOGLE,AOSP,
OTHER) describing what a build can do, not what it is called.RomDetectionMatrixkeeps every detection fingerprint (version
properties, brand constraints, manufacturer fallbacks) as protocol evidence
in one reviewed table, now mapping to the neutral tiers.- Files renamed:
EvolutionXSettingsBridge→CustomSettingsBridge,
EvolverCatalog→RomSettingCatalog,EvoActionHandler→
RomSettingsActionHandler,EvolverSettingPickerDialog→
RomSettingPickerDialog; the vendor autostart deep-link resolver now picks
the first vendor gate activity that actually resolves on the device. - Serialized action-type names neutralized with full backward
compatibility:EVO_*actions are nowROM_*
(ROM_CUSTOM_SETTING,ROM_QS_TILES,ROM_STATUS_BAR,ROM_LOCKSCREEN,
ROM_NAVIGATION,ROM_THEME,ROM_AMBIENT_AOD,ROM_NOTIFICATIONS,
ROM_BATCH) andSYSTEM_OPEN_GALAXY_STOREis now
SYSTEM_OPEN_DEVICE_STORE. Legacy@JsonNamesaliases keep every existing
saved automation, backup and execution record readable. - All user-facing strings (11 languages) reworded neutrally — the custom
ROM settings picker, the device-store action and the ROM-setting trigger no
longer advertise any product; per-locale translations re-verified. - Real device setting keys are preserved as protocol surface (
evo_*,
sysui_*,lineage_*prefixes) so the picker and the ROM-setting monitor
keep working against actual on-device settings providers.
Added
- Vendor-neutrality CI gate (
scripts/check_vendor_neutrality.py, wired
into the lint job with a self-test): any commercial ROM/OEM/device name
outside the protocol-allowlisted files fails CI, so vendor coupling cannot
silently return.
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.