xref: /aosp_15_r20/system/libhidl/vintfdata/freeze.sh (revision 8222fbe171c3d6fadfe95119c180cf3010c392a8)
1*8222fbe1SAndroid Build Coastguard Worker#!/bin/bash
2*8222fbe1SAndroid Build Coastguard Worker
3*8222fbe1SAndroid Build Coastguard Workermydir="$(dirname $0)"
4*8222fbe1SAndroid Build Coastguard Worker
5*8222fbe1SAndroid Build Coastguard Workerfunction freeze() {
6*8222fbe1SAndroid Build Coastguard Worker  [[ $# == 1 ]] || {
7*8222fbe1SAndroid Build Coastguard Worker    echo "usage: freeze.sh <level>"
8*8222fbe1SAndroid Build Coastguard Worker    echo "e.g. To freeze framework manifest for Android R, run:"
9*8222fbe1SAndroid Build Coastguard Worker    echo "  freeze.sh 5"
10*8222fbe1SAndroid Build Coastguard Worker    return 1
11*8222fbe1SAndroid Build Coastguard Worker  }
12*8222fbe1SAndroid Build Coastguard Worker  local level="$1"
13*8222fbe1SAndroid Build Coastguard Worker  [[ "${ANDROID_BUILD_TOP}" ]] || {
14*8222fbe1SAndroid Build Coastguard Worker    echo "ANDROID_BUILD_TOP is not set; did you run envsetup.sh?"
15*8222fbe1SAndroid Build Coastguard Worker    return 1
16*8222fbe1SAndroid Build Coastguard Worker  }
17*8222fbe1SAndroid Build Coastguard Worker  [[ "${ANDROID_HOST_OUT}" ]] || {
18*8222fbe1SAndroid Build Coastguard Worker    echo "ANDROID_HOST_OUT is not set; did you run envsetup.sh?"
19*8222fbe1SAndroid Build Coastguard Worker    return 1
20*8222fbe1SAndroid Build Coastguard Worker  }
21*8222fbe1SAndroid Build Coastguard Worker
22*8222fbe1SAndroid Build Coastguard Worker  local modules_to_build="check-vintf-all vintffm"
23*8222fbe1SAndroid Build Coastguard Worker  echo "Building ${modules_to_build}"
24*8222fbe1SAndroid Build Coastguard Worker  "${ANDROID_BUILD_TOP}/build/soong/soong_ui.bash" --build-mode --all-modules --dir="$(pwd)" ${modules_to_build} || {
25*8222fbe1SAndroid Build Coastguard Worker    echo "${modules_to_build} failed. Backwards compatibility might be broken."
26*8222fbe1SAndroid Build Coastguard Worker    echo "Check framework manifest changes. If this is intentional, run "
27*8222fbe1SAndroid Build Coastguard Worker    echo "  \`vintffm --update\` with appropriate options to update frozen files."
28*8222fbe1SAndroid Build Coastguard Worker    return 1
29*8222fbe1SAndroid Build Coastguard Worker  }
30*8222fbe1SAndroid Build Coastguard Worker
31*8222fbe1SAndroid Build Coastguard Worker  echo "Updating level ${level}"
32*8222fbe1SAndroid Build Coastguard Worker  "${ANDROID_HOST_OUT}/bin/vintffm" --update --level "${level}" --dirmap "/system:${ANDROID_PRODUCT_OUT}/system" "${mydir}/frozen" || return 1
33*8222fbe1SAndroid Build Coastguard Worker
34*8222fbe1SAndroid Build Coastguard Worker  local files_to_diff="$(printf "${mydir}/frozen/%s\n" $(ls -1 -t -r ${mydir}/frozen | xargs -I{} basename {} | grep -B1 "${level}.xml"))"
35*8222fbe1SAndroid Build Coastguard Worker
36*8222fbe1SAndroid Build Coastguard Worker  echo
37*8222fbe1SAndroid Build Coastguard Worker  echo "Summary of changes:"
38*8222fbe1SAndroid Build Coastguard Worker  echo diff ${files_to_diff}
39*8222fbe1SAndroid Build Coastguard Worker  diff ${files_to_diff} || true
40*8222fbe1SAndroid Build Coastguard Worker}
41*8222fbe1SAndroid Build Coastguard Worker
42*8222fbe1SAndroid Build Coastguard Workerfreeze $@
43