@@ -210,6 +210,51 @@ GENERATE_OP_LIST()
210210 fi
211211}
212212
213+ GENERATE_OTA_METADATA ()
214+ {
215+ local PROTO_FILE=" $SRC_DIR /external/android-tools/vendor/build/tools/releasetools/ota_metadata.proto"
216+
217+ local INCREMENTAL
218+ local RELEASE
219+ local SECURITY_PATCH_LEVEL
220+ local TIMESTAMP
221+
222+ INCREMENTAL=" $( GET_PROP " system" " ro.build.version.incremental" ) "
223+ RELEASE=" $( GET_PROP " system" " ro.build.version.release" ) "
224+ SECURITY_PATCH_LEVEL=" $( GET_PROP " system" " ro.build.version.security_patch" ) "
225+ TIMESTAMP=" $( GET_PROP " system" " ro.build.date.utc" ) "
226+
227+ mkdir -p " $TMP_DIR /META-INF/com/android"
228+
229+ # https://android.googlesource.com/platform/build/+/refs/tags/android-15.0.0_r1/tools/releasetools/ota_utils.py#259
230+ if [ -f " $PROTO_FILE " ]; then
231+ local MESSAGE
232+
233+ MESSAGE+=" type: BLOCK"
234+ MESSAGE+=" , precondition: {device: \\\" $TARGET_CODENAME \\\" }"
235+ MESSAGE+=" , postcondition: {device: \\\" $TARGET_CODENAME \\\" "
236+ MESSAGE+=" , build: \\\" $SOURCE_FINGERPRINT \\\" "
237+ MESSAGE+=" , build_incremental: \\\" $INCREMENTAL \\\" "
238+ MESSAGE+=" , timestamp: $TIMESTAMP "
239+ MESSAGE+=" , sdk_level: \\\" $RELEASE \\\" "
240+ MESSAGE+=" , security_patch_level: \\\" $SECURITY_PATCH_LEVEL \\\" }"
241+
242+ EVAL " protoc --encode=build.tools.releasetools.OtaMetadata --proto_path=\" $( dirname " $PROTO_FILE " ) \" \" $PROTO_FILE \" <<< \" $MESSAGE \" > \" $TMP_DIR /META-INF/com/android/metadata.pb\" " || exit 1
243+ fi
244+
245+ # https://android.googlesource.com/platform/build/+/refs/tags/android-15.0.0_r1/tools/releasetools/ota_utils.py#317
246+ {
247+ echo " ota-required-cache=0"
248+ echo " ota-type=BLOCK"
249+ echo " post-build=$SOURCE_FINGERPRINT "
250+ echo " post-build-incremental=$INCREMENTAL "
251+ echo " post-sdk-level=$RELEASE "
252+ echo " post-security-patch-level=$SECURITY_PATCH_LEVEL "
253+ echo " post-timestamp=$TIMESTAMP "
254+ echo " pre-device=$TARGET_CODENAME "
255+ } > " $TMP_DIR /META-INF/com/android/metadata"
256+ }
257+
213258GENERATE_UPDATER_SCRIPT ()
214259{
215260 local SCRIPT_FILE=" $TMP_DIR /META-INF/com/google/android/updater-script"
@@ -636,6 +681,9 @@ GENERATE_UPDATER_SCRIPT
636681LOG " - Generating build_info.txt"
637682GENERATE_BUILD_INFO
638683
684+ LOG " - Generating OTA metadata"
685+ GENERATE_OTA_METADATA
686+
639687LOG " - Creating zip"
640688EVAL " rm -f \" $OUT_DIR /rom.zip\" " || exit 1
641689pushd " $TMP_DIR " > /dev/null
0 commit comments