Skip to content

Enforce nondecreasing Android versionCode across replacement builds #137

Description

@isomorphisms

The shared Android update-identity rule requires every maintained first-party APK to keep a stable package ID, persistent test signer, and monotonically nondecreasing versionCode.

IB PR #69 (“Preserve stable Android prepaint signing identity”) and OMWeather PR #2 (“Require OMWeather replacement-install acceptance”) now prove an initial install followed by two consecutive adb install -r replacements of the current APK without uninstalling, and both keep test signing separate from production/store signing.

What remains unproved is the cross-build part of the rule: a current build can replace itself repeatedly even if its versionCode has regressed relative to a previously shipped/tested APK.

Add reusable ai-ci enforcement that:

  • compares the current APK/build metadata against a declared prior accepted APK/build or durable receipt;
  • rejects a lower versionCode;
  • keeps package-ID and signer checks in the same update-identity contract;
  • exercises a real old-APK -> new-APK replacement path when an older accepted artifact is available;
  • does not weaken or replace physical-device acceptance where that is separately required;
  • provides passing and targeted known-bad fixtures.

Consumer repositories should only provide project-specific inputs/artifacts, not fork equivalent policy logic.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions