mirror of
git://f0xx.org/android_cast
synced 2026-07-29 03:38:52 +03:00
contrib header changes
This commit is contained in:
@@ -8,7 +8,8 @@
|
||||
# v0/ota/channel/stable.json
|
||||
# v0/ota/00/00.MM/00.MM.mm/android_cast_00.MM.mm.BB_manifest.json
|
||||
# v0/ota/00/00.MM/00.MM.mm/android_cast_00.MM.mm.BB_sign.json
|
||||
# (copy APK to …/android_cast_00.MM.mm.BB.otapkg if out-dir set)
|
||||
# v0/ota/00/00.MM/00.MM.mm/android_cast_00.MM.mm.BB.otapkg
|
||||
# v0/ota/00/00.MM/00.MM.mm/android_cast_00.MM.mm.BB.otabundle.zip (STORE zip)
|
||||
set -euo pipefail
|
||||
|
||||
apk="${1:?APK path required}"
|
||||
@@ -48,7 +49,9 @@ artifact_base="${base}/android_cast_${ver_p}.${bld_p}"
|
||||
apk_url="${artifact_base}.otapkg"
|
||||
sign_url="${artifact_base}_sign.json"
|
||||
manifest_url="${artifact_base}_manifest.json"
|
||||
bundle_url="${artifact_base}.otabundle.zip"
|
||||
sha256="$(sha256sum "$apk" | awk '{print $1}')"
|
||||
apk_size="$(stat -c%s "$apk" 2>/dev/null || wc -c <"$apk" | tr -d ' ')"
|
||||
|
||||
rel_root="${out_dir}/v0/ota"
|
||||
rel_dir="${rel_root}/00/${maj_p}/${ver_p}"
|
||||
@@ -57,14 +60,18 @@ mkdir -p "${rel_dir}" "${rel_root}/channel"
|
||||
pkg_name="android_cast_${ver_p}.${bld_p}.otapkg"
|
||||
cp -f "$apk" "${rel_dir}/${pkg_name}"
|
||||
|
||||
cat >"${rel_dir}/android_cast_${ver_p}.${bld_p}_sign.json" <<EOF
|
||||
sign_name="android_cast_${ver_p}.${bld_p}_sign.json"
|
||||
manifest_name="android_cast_${ver_p}.${bld_p}_manifest.json"
|
||||
bundle_name="android_cast_${ver_p}.${bld_p}.otabundle.zip"
|
||||
|
||||
cat >"${rel_dir}/${sign_name}" <<EOF
|
||||
{
|
||||
"schema": "v0",
|
||||
"sha256": "${sha256}"
|
||||
}
|
||||
EOF
|
||||
|
||||
cat >"${rel_dir}/android_cast_${ver_p}.${bld_p}_manifest.json" <<EOF
|
||||
cat >"${rel_dir}/${manifest_name}" <<EOF
|
||||
{
|
||||
"schema": "v0",
|
||||
"major": ${major},
|
||||
@@ -73,6 +80,36 @@ cat >"${rel_dir}/android_cast_${ver_p}.${bld_p}_manifest.json" <<EOF
|
||||
"versionName": "${version_name:-${major}.${minor}.${build}}",
|
||||
"apkUrl": "${apk_url}",
|
||||
"signUrl": "${sign_url}",
|
||||
"sizeBytes": ${apk_size},
|
||||
"mandatory": false,
|
||||
"releaseNotes": ""
|
||||
}
|
||||
EOF
|
||||
|
||||
bundle_stage="$(mktemp -d)"
|
||||
trap 'rm -rf "${bundle_stage}"' EXIT
|
||||
cp -f "${rel_dir}/${manifest_name}" "${bundle_stage}/manifest.json"
|
||||
cp -f "${rel_dir}/${sign_name}" "${bundle_stage}/sign.json"
|
||||
cp -f "$apk" "${bundle_stage}/package.apk"
|
||||
# -0 = STORED (no re-compression of the APK)
|
||||
( cd "${bundle_stage}" && zip -0 -q -X "${rel_dir}/${bundle_name}" manifest.json sign.json package.apk )
|
||||
bundle_sha256="$(sha256sum "${rel_dir}/${bundle_name}" | awk '{print $1}')"
|
||||
bundle_size="$(stat -c%s "${rel_dir}/${bundle_name}" 2>/dev/null || wc -c <"${rel_dir}/${bundle_name}" | tr -d ' ')"
|
||||
|
||||
# Patch manifest with bundle fields (jq optional; use temp file + heredoc rewrite)
|
||||
cat >"${rel_dir}/${manifest_name}" <<EOF
|
||||
{
|
||||
"schema": "v0",
|
||||
"major": ${major},
|
||||
"minor": ${minor},
|
||||
"build": ${build},
|
||||
"versionName": "${version_name:-${major}.${minor}.${build}}",
|
||||
"apkUrl": "${apk_url}",
|
||||
"signUrl": "${sign_url}",
|
||||
"sizeBytes": ${apk_size},
|
||||
"bundleUrl": "${bundle_url}",
|
||||
"bundleSha256": "${bundle_sha256}",
|
||||
"bundleSizeBytes": ${bundle_size},
|
||||
"mandatory": false,
|
||||
"releaseNotes": ""
|
||||
}
|
||||
@@ -87,4 +124,5 @@ EOF
|
||||
|
||||
echo "Published v0 OTA under ${out_dir}/v0/ota" >&2
|
||||
echo "Channel: ${host_base%/}/v0/ota/channel/stable.json" >&2
|
||||
echo "Bundle: ${bundle_url} (${bundle_size} bytes)" >&2
|
||||
cat "${rel_root}/channel/stable.json"
|
||||
|
||||
Reference in New Issue
Block a user