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:
20
tools/finalization/build-step-0-and-m.sh
Executable file
20
tools/finalization/build-step-0-and-m.sh
Executable 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 $@
|
@@ -7,11 +7,26 @@ function finalize_main_step0() {
|
||||
local top="$(dirname "$0")"/../../../..
|
||||
source $top/build/make/tools/finalization/environment.sh
|
||||
|
||||
local need_vintf_finalize=false
|
||||
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
|
||||
fi;
|
||||
}
|
||||
|
||||
finalize_main_step0
|
||||
|
||||
|
@@ -29,4 +29,8 @@ export BUILD_FROM_SOURCE_STUB=true
|
||||
# FINAL versions for VINTF
|
||||
# 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.
|
||||
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'
|
||||
|
@@ -33,18 +33,18 @@ function finalize_vintf_resources() {
|
||||
function create_new_compat_matrix_and_kernel_configs() {
|
||||
# The compatibility matrix versions are bumped during vFRC
|
||||
# These will change every time we have a new vFRC
|
||||
local CURRENT_COMPATIBILITY_MATRIX_LEVEL='202404'
|
||||
local NEXT_COMPATIBILITY_MATRIX_LEVEL='202504'
|
||||
local CURRENT_COMPATIBILITY_MATRIX_LEVEL="$FINAL_BOARD_API_LEVEL"
|
||||
local NEXT_COMPATIBILITY_MATRIX_LEVEL="$FINAL_NEXT_BOARD_API_LEVEL"
|
||||
# The kernel configs need the letter of the Android release
|
||||
local CURRENT_RELEASE_LETTER='v'
|
||||
local NEXT_RELEASE_LETTER='w'
|
||||
local CURRENT_RELEASE_LETTER="$FINAL_CORRESPONDING_VERSION_LETTER"
|
||||
local NEXT_RELEASE_LETTER="$FINAL_NEXT_CORRESPONDING_VERSION_LETTER"
|
||||
|
||||
|
||||
# build the targets required before touching the Android.bp/Android.mk files
|
||||
local build_cmd="$top/build/soong/soong_ui.bash --make-mode"
|
||||
$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
|
||||
# aosp_cf_x86_64-trunk_staging build target to get the right manifest
|
||||
|
Reference in New Issue
Block a user