{
  "artifact": "loopstand-tv-v1.5.apk",
  "package": "com.loopstand.tvplayer.test",
  "version": "1.5",
  "versionCode": 6,
  "minSdk": 24,
  "targetSdk": 35,
  "bytes": 660949,
  "sha256": "1ee50b6077163c4b5b817c0bebb101e6b53fed8c511545cd59343f57cd265b82",
  "permissions": [
    "android.permission.INTERNET",
    "android.permission.REQUEST_INSTALL_PACKAGES"
  ],
  "nativeLibraries": [],
  "appName": "Loopstand TV",
  "download": "/tv/loopstand-tv-v1.5.apk",
  "player": "/tv/",
  "guide": "/tv/setup.html",
  "phoneConnection": "/tv/connect.html",
  "management": "/tv/manage.html",
  "channel": "signed sideload APK",
  "signingCertificateSha256": "a81cd3f60e05babac9f0ddf64e6b9ff717a5192f4cac152f1ee62a5134542648",
  "sameSignerUpgradeVerified": true,
  "upgradeFromVersionCode": 5,
  "softwareTests": 127,
  "nativePolicyTests": 27,
  "validation": [
    "127 playback, QR approval, phone dashboard, management, proxy and backend checks passed",
    "Real compiled management client tested against the actual route handler using isolated D1/R2 and upstream fixtures",
    "Strict TypeScript checks for player, management and dashboard passed",
    "Generated TV scripts parse as ES5",
    "27 native PBKDF2 and signed-update policy checks passed",
    "Java compilation and API24 D8 compilation passed",
    "APK ZIP, signing, alignment, SDK, permissions and resources verified",
    "All five bundled player assets byte-match the final website sources",
    "Disabled-by-default Home alias and private update provider verified in the compiled manifest",
    "Same package/signer and increasing version code verified against v1.4",
    "Loopstand TV label and existing launcher icon/banner resources preserved",
    "Dashboard layouts checked at 1280, 390 and 320 pixels using isolated fixture data",
    "All four database migrations applied to fresh isolated SQLite with integrity check OK"
  ],
  "features": [
    "Opt-in Home app startup and automatic screen resume",
    "Phone controls with real device acknowledgments and applied configuration revisions",
    "Screen health, download readiness and persisted alerts",
    "Six-digit owner PIN with offline verification, cooldown and background relocking",
    "Advance downloads, shared download jobs and automatic failure retries",
    "APK update checks and verified Android installation handoff",
    "Private timestamped player preview with capture eligibility checks",
    "Owner-branded offline fallback with title, background and image"
  ],
  "operatingNotes": [
    "Choose Loopstand TV as the Android Home app on the box to enable startup",
    "Android permission and installer prompts require local approval for updates",
    "Alerts are reconciled during dashboard reads/check-ins; optional browser notifications work while the dashboard is open",
    "Preview captures app content, not the physical TV power state; Android 7 and browser previews are approximate",
    "Offline playback remains bounded by the server-authorized schedule expiry"
  ],
  "notVerified": [
    "Physical Alibaba box installation, power-loss restart and remote behavior",
    "Box-specific media decoding and long-running playback",
    "Physical phone camera scan and live Eravo ID owner-to-device end-to-end session",
    "Physical Android update permission and installer interaction"
  ]
}
