Skip to content

[stealth 4/4] static leakage checks, CI gates & release/QA policy#8864

Draft
reflog wants to merge 1 commit into
stealth/pr3-feature-loggingfrom
stealth/pr6-leakage-policy
Draft

[stealth 4/4] static leakage checks, CI gates & release/QA policy#8864
reflog wants to merge 1 commit into
stealth/pr3-feature-loggingfrom
stealth/pr6-leakage-policy

Conversation

@reflog

@reflog reflog commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Part of epic getlantern/engineering#3569 — stacked PR 4/4, targets stealth/pr3-feature-logging.

Post-processing + static leakage checks (forbidden tokens, native symbols, manifest entries), APK/AAB sanitizer, CI gates, and the release/QA detection matrix + policy docs.

Implements #3628.

🤖 Generated with Claude Code

@reflog reflog changed the title stealth(leakage): static leakage checks, CI gates & release/QA policy [stealth 6/6] static leakage checks, CI gates & release/QA policy Jun 15, 2026
@reflog reflog force-pushed the stealth/pr5-denylist-novpn branch from 32ed08d to 8c26ff5 Compare June 15, 2026 15:45
@reflog reflog force-pushed the stealth/pr6-leakage-policy branch from 6e5642d to 8d5bf20 Compare June 15, 2026 15:45
@reflog reflog force-pushed the stealth/pr5-denylist-novpn branch from 8c26ff5 to 00c9df6 Compare June 15, 2026 16:10
@reflog reflog force-pushed the stealth/pr6-leakage-policy branch 2 times, most recently from 2d3acae to 792afaf Compare June 15, 2026 16:27
@reflog reflog changed the title [stealth 6/6] static leakage checks, CI gates & release/QA policy [stealth 4/4] static leakage checks, CI gates & release/QA policy Jun 15, 2026
@reflog reflog changed the base branch from stealth/pr5-denylist-novpn to stealth/pr3-feature-logging June 15, 2026 16:28
@reflog reflog force-pushed the stealth/pr3-feature-logging branch from b460d86 to c672ff5 Compare June 15, 2026 16:40
@reflog reflog force-pushed the stealth/pr6-leakage-policy branch from 792afaf to 4385762 Compare June 15, 2026 16:40
@reflog reflog requested a review from Copilot June 15, 2026 16:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a set of “stealth” Android build post-processing and verification utilities: an artifact sanitizer, a static token leakage scanner with configurable modes, and a Flutter build wrapper for de-branding content, plus tests and documentation describing the intended QA/release policy.

Changes:

  • Add check_leakage.py + JSON policy config to scan APK/AAB/ZIP artifacts (including nested archives/metadata) for forbidden identifiers, with unit tests.
  • Add sanitize_android_artifact.py to strip selected bundle metadata, scrub brand-only strings from libgojni.so, and optionally re-sign mutated APK/AAB artifacts, with unit tests.
  • Add run_flutter_build.py wrapper to de-brand locale .po content, Dart string literals/i18n keys, and brand-named image assets during Flutter builds (restoring sources afterward), plus policy docs.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
scripts/stealth/sanitize_android_artifact.py Implements archive mutation + native brand-string scrubbing and optional APK/AAB re-signing.
scripts/stealth/sanitize_android_artifact_test.py Adds unit coverage for metadata stripping, scrubbing behavior, and signing invocation behavior.
scripts/stealth/run_flutter_build.py Adds pre-build de-branding wrapper for locales, Dart literals/keys, and asset renames/replacements.
scripts/stealth/forbidden_tokens.json Defines forbidden-token categories and scanning modes (stealth / stealth-vpn / stealth-novpn).
scripts/stealth/check_leakage.py Implements recursive leakage scanning across directories and zip-like archives (incl. metadata/non-entry bytes).
scripts/stealth/check_leakage_test.py Adds unit tests validating scanner behavior, allowlists, and error handling.
docs/stealth-leakage-checks.md Documents how to run leakage checks and what each mode is intended to cover.
docs/stealth-builds.md Documents stealth build QA and release policy, including complementary checks and acceptance criteria.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/stealth/sanitize_android_artifact_test.py Outdated
Comment thread scripts/stealth/sanitize_android_artifact.py Outdated
Comment thread scripts/stealth/run_flutter_build.py Outdated
Comment thread docs/stealth-leakage-checks.md Outdated
Comment thread docs/stealth-leakage-checks.md Outdated
@reflog reflog force-pushed the stealth/pr6-leakage-policy branch from 4385762 to 63a0080 Compare June 15, 2026 16:51
@reflog reflog force-pushed the stealth/pr3-feature-logging branch from c672ff5 to d665771 Compare June 15, 2026 16:51
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.

2 participants