Update vintf finalization script

Run vintf finalization if the target configuration does not set
RELEASE_BOARD_API_LEVEL_FROZEN to 'true'; and FINAL_BOARD_API_LEVEL
which is the version to finalize is the same with the
RELEASE_BOARD_API_LEVEL which is the version that the current tree is
building.

Also define build-step-0-and-m.sh that runs a test build after the
vintf finalization process.

Ignore-AOSP-First: finalization script is an exception
Bug: 331696132
Test: tools/finalization/build-step-0-and-m.sh
Change-Id: I22b9096d57c935e64c4d28f16b95afaa84b79465
This commit is contained in:
Justin Yun
2024-07-19 08:43:20 +09:00
parent 35a9f0e4ce
commit 7fc38029ec
4 changed files with 47 additions and 8 deletions

View File

@@ -0,0 +1,20 @@
#!/bin/bash
# Copyright 2024 Google Inc. All rights reserved.
set -ex
function help() {
echo "Finalize VINTF and build a target for test."
echo "usage: $(basename "$0") target [goals...]"
}
function finalize_main_step0_and_m() {
if [ $# == 0 ] ; then
help
exit 1
fi;
local top="$(dirname "$0")"/../../../..
source $top/build/make/tools/finalization/build-step-0.sh
local m="$top/build/soong/soong_ui.bash --make-mode TARGET_PRODUCT=$1 TARGET_RELEASE=fina_0 TARGET_BUILD_VARIANT=userdebug"
# This command tests the release state for AIDL.
AIDL_FROZEN_REL=true $m ${@:2}
}
finalize_main_step0_and_m $@

View File

@@ -7,11 +7,26 @@ function finalize_main_step0() {
local top="$(dirname "$0")"/../../../.. local top="$(dirname "$0")"/../../../..
source $top/build/make/tools/finalization/environment.sh source $top/build/make/tools/finalization/environment.sh
local need_vintf_finalize=false
if [ "$FINAL_STATE" = "unfinalized" ] ; then if [ "$FINAL_STATE" = "unfinalized" ] ; then
# VINTF finalization need_vintf_finalize=true
else
# build-step-0.sh tests the vintf finalization step (step-0) when the
# FINAL_BOARD_API_LEVEL is the same as the RELEASE_BOARD_API_LEVEL; and
# RELEASE_BOARD_API_LEVEL_FROZEN is not true from the fina_0 configuration.
# The FINAL_BOARD_API_LEVEL must be the next vendor API level to be finalized.
local board_api_level_vars=$(TARGET_RELEASE=fina_0 $top/build/soong/soong_ui.bash --dumpvars-mode -vars "RELEASE_BOARD_API_LEVEL_FROZEN RELEASE_BOARD_API_LEVEL")
local target_board_api_level_vars="RELEASE_BOARD_API_LEVEL_FROZEN=''
RELEASE_BOARD_API_LEVEL='$FINAL_BOARD_API_LEVEL'"
if [ "$board_api_level_vars" = "$target_board_api_level_vars" ] ; then
echo The target is a finalization candidate.
need_vintf_finalize=true
fi;
fi;
if [ "$need_vintf_finalize" = true ] ; then # VINTF finalization
source $top/build/make/tools/finalization/finalize-vintf-resources.sh source $top/build/make/tools/finalization/finalize-vintf-resources.sh
fi; fi;
} }
finalize_main_step0 finalize_main_step0

View File

@@ -29,4 +29,8 @@ export BUILD_FROM_SOURCE_STUB=true
# FINAL versions for VINTF # FINAL versions for VINTF
# TODO(b/323985297): The version must match with that from the release configuration. # TODO(b/323985297): The version must match with that from the release configuration.
# Instead of hardcoding the version here, read it from a release configuration. # Instead of hardcoding the version here, read it from a release configuration.
export FINAL_BOARD_API_LEVEL='202404' export FINAL_BOARD_API_LEVEL='202504'
export FINAL_CORRESPONDING_VERSION_LETTER='W'
export FINAL_CORRESPONDING_PLATFORM_VERSION='16'
export FINAL_NEXT_BOARD_API_LEVEL='202604'
export FINAL_NEXT_CORRESPONDING_VERSION_LETTER='X'

View File

@@ -33,18 +33,18 @@ function finalize_vintf_resources() {
function create_new_compat_matrix_and_kernel_configs() { function create_new_compat_matrix_and_kernel_configs() {
# The compatibility matrix versions are bumped during vFRC # The compatibility matrix versions are bumped during vFRC
# These will change every time we have a new vFRC # These will change every time we have a new vFRC
local CURRENT_COMPATIBILITY_MATRIX_LEVEL='202404' local CURRENT_COMPATIBILITY_MATRIX_LEVEL="$FINAL_BOARD_API_LEVEL"
local NEXT_COMPATIBILITY_MATRIX_LEVEL='202504' local NEXT_COMPATIBILITY_MATRIX_LEVEL="$FINAL_NEXT_BOARD_API_LEVEL"
# The kernel configs need the letter of the Android release # The kernel configs need the letter of the Android release
local CURRENT_RELEASE_LETTER='v' local CURRENT_RELEASE_LETTER="$FINAL_CORRESPONDING_VERSION_LETTER"
local NEXT_RELEASE_LETTER='w' local NEXT_RELEASE_LETTER="$FINAL_NEXT_CORRESPONDING_VERSION_LETTER"
# build the targets required before touching the Android.bp/Android.mk files # build the targets required before touching the Android.bp/Android.mk files
local build_cmd="$top/build/soong/soong_ui.bash --make-mode" local build_cmd="$top/build/soong/soong_ui.bash --make-mode"
$build_cmd bpmodify $build_cmd bpmodify
"$top/prebuilts/build-tools/path/linux-x86/python3" "$top/hardware/interfaces/compatibility_matrices/bump.py" "$CURRENT_COMPATIBILITY_MATRIX_LEVEL" "$NEXT_COMPATIBILITY_MATRIX_LEVEL" "$CURRENT_RELEASE_LETTER" "$NEXT_RELEASE_LETTER" "$top/prebuilts/build-tools/path/linux-x86/python3" "$top/hardware/interfaces/compatibility_matrices/bump.py" "$CURRENT_COMPATIBILITY_MATRIX_LEVEL" "$NEXT_COMPATIBILITY_MATRIX_LEVEL" "$CURRENT_RELEASE_LETTER" "$NEXT_RELEASE_LETTER" "$FINAL_CORRESPONDING_PLATFORM_VERSION"
# Freeze the current framework manifest file. This relies on the # Freeze the current framework manifest file. This relies on the
# aosp_cf_x86_64-trunk_staging build target to get the right manifest # aosp_cf_x86_64-trunk_staging build target to get the right manifest