use chunked XHR and OS.File to download APKs; including file missing from first commit