# Røskeland Shield 1.4.6 Direct — release verification

Verified 10 October 2026. Direct Android edition; versionCode 12.

## English / Español controls

Both the Direct app home and official Shield shop/update pages provide persistent
English / Español buttons. Native UI labels, dialogs, finding explanations, shared
reports and notifications use the selected language. The website translates the
purchase form, validation, installation instructions, update status and limits.

Android API 26 and 33 tests verify the language choice, reversible screen changes,
Full entitlement, installation ID and saved history. A gated foreground-service
test changes language during an active Deep scan and verifies the same session
continues without a cancellation request. Native graphics tests verify complete
Spanish button labels and touch targets on normal and narrow enlarged-text layouts;
both Spanish home renders were visually inspected.

File and app names, paths, SHA-256 values, exact-record source labels, transaction
references and activation codes remain raw. Canonical detector findings and saved
reports are retained; translation is a presentation layer. A report test confirms
unconfirmed evidence stays unconfirmed and cannot become an exact detection through
translation. A source label containing a template marker also remains unchanged.

On Android 13 and later, language selection uses the system per-app locale API;
earlier versions persist a local UI preference. Browser preferences are stored
locally, with only en/es accepted; switching preserves URL activation/version
parameters and the current form state. The scanner still has no Internet permission.

## Official app Updates button

Direct Free and Full users have an App updates card showing the installed version.
Updates opens the browser at the pinned official HTTPS website endpoint and sends
only versionCode and the selected en/es language. It sends no activation ID, scan data, hashes or app inventory.
The website redirects an older version to the current signed Direct APK. Equal
and newer versions show a status page; no automatic downgrade is requested.
Unrecognized versions show the official manual download page. Redirect targets
come from the published release record, never from caller-controlled URLs. These
version decisions are uncached so the same button follows future publications.

The browser downloads the APK and Android confirms installation. Shield retains
its no-Internet manifest and adds no package-install permission. Both Free and
Full receive app updates. Signed .rsu database imports remain a separate Full
feature. App updates include the release's bundled exact indicator index.

Tests exercise the Free browser intent and confirm its version and allowlisted language parameters,
plus the Full handoff and Activity recreation without changing the activation ID,
signed entitlement or saved scan history. Native rendering checks include the
new button at normal size and 320dp/150% text. All 12 scanner/attribution assets
and both root offline verification keys were compared byte-for-byte with 1.4.5.
The same production signer, package and higher code were verified independently
from the final APK. No physical phone installation or live browser-to-installer
upgrade was performed here; Android/vendor behavior still requires phone testing.

## Retained two-byte false-positive correction

The repeated SHA-256 from the owner report,
`4355a46b19d348dc2f57c046f8ef63d4538ebb936000f3c9ee954a27460dd865`,
identifies exactly the ASCII bytes `31 0a`: the digit 1 followed by a newline.
This content is a plain text marker, not a malware payload. The shipped Bloom
screening snapshot is tested directly to reproduce its hit for these bytes.

The correction requires that exact SHA-256 and a verified complete two-byte read.
It does not skip tiny files, extensionless files, videos or a whole folder. Other
two-byte content and files merely beginning with the marker still pass through
normal screening/exact confirmation. The hash-cache policy revision changes so
old cached results cannot retain the previous classification.

Old saved file warnings for that exact fingerprint are withdrawn when reports
are read. Their original private report file is not changed by reading. History
counts are reconciled when the full report is available; reports without detailed
evidence remain conservative. Empty-file and skipped-area counts are retained.
No user file is removed by this correction. Re-scan after installing the update.
This does not establish that every unconfirmed item or the whole phone is safe.

## Grouped findings and conservative actions

Repeated file fingerprints with the same evidence class share one result card.
View files lists every individual path. Selecting a file opens its full finding,
copy control, and (only for confirmed exact evidence) individual removal control.
There is no bulk deletion. Saved reports retain all active findings and paths;
shared text explains each fingerprint once and lists every target.

Headline fingerprint counts are distinct; matched-item totals are separate.
Different fingerprints, exact versus screening evidence, app actions and
permission reviews remain separate. Skipped areas, unreadable/changed files,
missing requested storage coverage and cancelled scans remain incomplete.

The 1.4.3 full-read safeguards remain: actual byte counts, regular-file checks,
stable size/modification time/identity, no shared-file metadata-only cache, and
fresh full reads of cached APK hits. Empty fingerprints never become threats.
Bloom-only matches remain amber and cannot enable deletion or guided uninstall.
File deletion requires explicit confirmation, current exact-index membership,
a new complete matching read and an unchanged regular path; symlinks, changed
files and withdrawn indicators are refused. Exact published bytes identify a
sample, not proof of execution or active infection. Unknown threats can be missed.

## Release identity and preservation

- Package `com.roskeland.shield.direct`; version `1.4.6-direct`; versionCode 12.
- Minimum Android API 26; target/compile API 36. JDK 17, Gradle 8.13,
  Android Gradle Plugin 8.12.1, Build Tools 36.0.0.
- Minified production APK; signature schemes v2 and v3 verified.
- Retained signer SHA-256:
  `7b4fac96823c8ca109f55ed30e9b0213a47c1dcbbc69c6dc2408dfaed50fae78`.
- Both offline verification keys, guardian artwork and all threat datasets are
  byte-identical to 1.4.5. The manifest has no Internet or Play billing permission.
- Full activation/history, Emerald Night and foreground-service scanning are
  preserved. Install over the current Direct app; do not uninstall/clear data.

## Automated verification

- **98 Direct tests passed**, zero failures, errors or skips.
- Eight native graphics/layout tests passed: English and Spanish emerald home, English and Spanish 320dp/150% text,
  single unconfirmed/confirmed results, and grouped unconfirmed/confirmed results.
  The grouped renders were visually reviewed; every member remains selectable.
- Release lint: **0 errors, 2 warnings**. Minified signed release assembly succeeded.
  The warnings recommend RequiresApi for the private SDK-guarded Android 13 helper
  and flag app-bundle language handling. API 26/33 runtime tests pass, language
  splitting is disabled, and the distributed Direct artifact is a single APK
  whose Spanish resources were independently verified.
- APK Signature Schemes v2/v3 and the retained signer were verified separately.
- APK manifest/version/permissions and extracted assets were verified separately.
- Website TypeScript checks and 39 automated tests passed, including the bilingual copy, language-preserving update routing, private orders, receipt drafts, private crow alerts, community and visitor regressions. Browser QA was unavailable; no live browser test is claimed.
- Matching source contains the tests, data attribution and offline compiler;
  private owner keys and passwords are excluded.

The targeted tests reproduce the raw shipped screening hit and its corrected
classification; check exact content/complete-read requirements; retain other tiny
matches regardless of extension; refuse removal of the old marker warning; count
actual shared-file markers and empty files; correct a 123-marker legacy report and
its history while retaining 473 apps, 35,164 files, 223 empty files and 3 skipped
areas; round-trip other findings and all grouped paths; and keep mixed evidence
and app actions separate. Native grouped-result tests check every path and
individual controls for both unconfirmed and exact results.

Existing tests cover offline Full activation/binding, forged/replayed update
rejection, startup, strict byte counts, changed/truncated reads, cache migration,
exact source labels and integrity, safe deletion, foreground-service survival
after Activity destruction, progress reattachment, notification Stop, saved
partial findings, timeout cleanup and interrupted-process recovery.

## Data sources and distribution

The Hypatia Bloom snapshot remains 27 September 2026, revision
`e54777a1d51261e46be1e66af551f36914bc1727`; approximately 1,727,922 screening
fingerprints. The independent exact snapshot remains 8 October 2026 with 9,341
unique SHA-256 sample records: ESET 6,113 and Échap 3,228.

- ESET malware-ioc: https://github.com/eset/malware-ioc
  commit `17baf44964a77368e9149f4f593eb098beddf1c5`; BSD-2-Clause.
- Échap stalkerware-indicators: https://github.com/AssoEchap/stalkerware-indicators
  commit `e25fba7b16884956bc048a6e59fddc827606f560`; CC BY 4.0.
- Exact index SHA-256:
  `841216c69ea2f322ee3392e915a9a895d8abcf1c45c820825b29554480fdc7ee`.

Typed sample SHA-256 indicators only; no malware samples were fetched. Watchware,
package/certificate/network indicators and empty hashes remain excluded. Input
receipts, typed inputs, offline compiler, attribution and licences are in the
matching AGPL source. No provider endorsement or independent detection benchmark
is claimed. Signed .rsu bundles refresh the Bloom layer; exact records refresh
with APK releases. No update frequency is promised.

The owner previously reported successful background scanning on their phone.
This release was checked with automated tests/native renders; no new physical
Redmi installation or full-device detection evaluation was performed here.
Android force stop, reboot, memory pressure and vendor battery controls can
interrupt scanning. The two-hour limit remains. Accessible shared-file reads
can take longer than metadata-only cached scans.

The existing manual $9.99 USD Full offer remains. Public downloads include the
signed APK, matching source, notices, install/activation guide, verification report,
checksums and retained signed database bundle. Private signing/issuer/update keys,
passwords and owner activation details are excluded from public source/downloads.
APK/source digests are in Shield-Checksums.txt on the official download page.
