645162f063
Root cause of 'stuck on downloading' bug (Android 13+): DownloadManager.ACTION_DOWNLOAD_COMPLETE is sent by the system process, which is external to our app. Registering the receiver with RECEIVER_NOT_EXPORTED silently drops the broadcast — the BroadcastReceiver never fires, the install never starts, and the UI stays frozen at whatever progress percentage the poller last saw. Fix: use RECEIVER_EXPORTED for the DownloadManager completion receiver in both kiosk and scale-gateway apps. The PackageInstaller result receiver (internal PendingIntent broadcast, same package) correctly keeps RECEIVER_NOT_EXPORTED — that one is intentionally app-private.