You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8754ccb
Browse filesBrowse the repository at this point in the historyBrowse files
feat: announce new releases through a signed file in the synced feed
Adoption lags every release because the in-app update check is off by
default. Phones already fetch signed files from data/ on every sync, so
the release step now writes data/app_release.json (version code, name,
release page URL, APK SHA-256), signs it with the feed key, and a phone
on a lower version code shows a Home card with a Get it button that
opens the release page. Dismissing hides that version only; the next
release shows again.
- GitHubDataSource refuses a notice whose URL isn't exactly this repo's
tag page for that version, a malformed name or hash, or a missing or
bad signature. A refused or missing file keeps the last good notice.
- No ETag: the file and its signature are about 400 bytes and are
fetched as a pair, so a conditional request would save nothing.
- scripts/write_app_release.py reads the version from the Gradle file,
hashes the APK (or takes --sha256) and signs through feed_signing.
- app_release.json joins SIGNED_FEEDS and SIGNED_FEED_PATHS.
- New settings keys are classified in BackupSettingsCoverageTest
(added cases only, no existing assertion changed).
<imgsrc="https://img.shields.io/badge/API%20Keys-None-fab387?style=flat-square"alt="No required API keys">
@@ -283,7 +283,7 @@ by locale and message type without shipping personal data:
283
283
- Protection test validates all layers and permissions, including checker errors and deadline cutoffs
284
284
- Rules surface priority conflicts after sync and edits, with the winning rule and a review path
285
285
- Home leads with localized blocked-call/text outcomes and collapses completed setup into a review row
286
-
- Optional weekly GitHub Releases update checks are off by default and only offer release/SHA256 links
286
+
-Home shows a card when a newer release is out, read from a signed file that syncs with the spam database, so no extra host is contacted. Optional weekly GitHub Releases update checks are off by default and only offer release/SHA256 links
287
287
- Maintainer data regeneration uses the gated `scripts/import_all_sources.py` pipeline. Legacy direct writers aren't supported
Call and message decisions run on the phone. No personal data is collected. CallShield makes these network requests:
383
-
- The spam database and trending feeds, from this public repository on GitHub, or from the feed mirror if you set one
383
+
- The spam database, trending feeds and the new-release notice, from this public repository on GitHub, or from the feed mirror if you set one
384
384
- Live caller enrichment, which is off by default and runs only for locally suspicious calls. The setting names every destination host before a number is shared
385
385
- Community reports to the Cloudflare Worker. Each report is committed as a public JSON file to this repository's `data/reports` folder, and the next merge folds it into the database. It holds the reported number, the report type and time, the report's random id, and two reporter IDs that change every day (keyed HMACs of your network's /48 and /64, so the same network can't be linked across days or turned back into an address). An SMS report adds the linked domains and link labels, never message text. The report never holds your IP address. To stop floods and repeat reports, the Worker's short-lived store keys a duplicate check on your IPv4 address or IPv6 /64 for five minutes, and when Cloudflare's rate limiter is unavailable its fallback counter does the same for one minute. Both expire on their own
386
386
- Local spam-domain checks don't disclose SMS or RCS links. Optional PhishTank lookups send only the site's base domain, and the OpenPhish feed is downloaded for local matching. Neither receives message text
0 commit comments