Skip to content

ci(crv): add stable same-signer physical test pair - #110

Draft
daniele21 wants to merge 2 commits into
devfrom
agent/crv-stable-physical-test-signing-pair
Draft

ci(crv): add stable same-signer physical test pair#110
daniele21 wants to merge 2 commits into
devfrom
agent/crv-stable-physical-test-signing-pair

Conversation

@daniele21

@daniele21 daniele21 commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Scope

Adds a RedactGuard-owned pair-packaging workflow for the frozen CRV physical candidate.

  • calls the Harness-owned exact-ref physical host builder; RedactGuard does not check out or build Harness source;
  • builds the exact RedactGuard release-ci candidate through the existing canonical packaging script;
  • restores one dedicated stable test-only PKCS12 identity from GitHub Secrets only inside the signing steps;
  • pins the expected public certificate SHA-256 so accidental key drift fails closed;
  • zipaligns/signs Harness + RedactGuard with the same certificate and verifies exact signer equality;
  • verifies the Harness APK remains ARM64 and both release package IDs are correct;
  • uploads only the signed APK pair plus bounded source/SHA/signer manifest and install notes;
  • removes signing material before artifact upload;
  • runs automatically when integrated into dev (so the artifact does not depend on main being the default branch), while retaining workflow_dispatch for future replay once the workflow reaches the default branch.

Default candidate refs remain the CRV-100 frozen pair: Harness a30f67b21e24adc6efea838e9a9d65cc78446f28, RedactGuard 4679c23a9a22e5242761fe52af97f4eb7432aec7.

Security boundary

The stable test private key is not committed. The workflow expects CRV_TEST_SIGNING_KEYSTORE_B64, CRV_TEST_SIGNING_STORE_PASSWORD, CRV_TEST_SIGNING_KEY_ALIAS, and CRV_TEST_SIGNING_KEY_PASSWORD as repository secrets. Those secrets are scoped only to the steps that reconstruct/verify/sign with the key. The public frozen test certificate fingerprint is D6E16D72FB557B62248F2D48391B5D86F4EB3DAFC920A214F3165169849100F7.

This signer is for physical development/E2E only. It proves the Android same-signature permission boundary on-device but is explicitly not production/upload-key signing evidence.

Dependency

Uses Harness reusable workflow at exact commit f8207c6c8e34f4310fbeb7e01698d58d7579b4a2 from Harness #483.

Validation

CI/signing/release packaging is security- and release-sensitive, so expected profile is FULL. PR validation must not receive signing secrets; the stable-key lane executes only after trusted dev integration/manual dispatch. Physical ARM64 + real GGUF behavior remains REAL_ENVIRONMENT; the generated pair only prepares its exact install inputs.

Copy link
Copy Markdown
Owner Author

/preflight full

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant