// // Copyright (C) 2020 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package { default_applicable_licenses: ["Android-Apache-2.0"], } python_defaults { name: "gki_python_defaults", libs: [ "releasetools_ota_from_target_files", ], version: { py3: { embedded_launcher: true, }, }, target: { darwin: { // required module "brillo_update_payload" is disabled on darwin enabled: false, }, }, } python_binary_host { name: "ota_from_raw_image", defaults: ["gki_python_defaults"], srcs: ["ota_from_raw_image.py"], required: [ "brillo_update_payload", ], } python_binary_host { name: "extract_img_from_apex", defaults: ["gki_python_defaults"], srcs: ["extract_img_from_apex.py"], required: [ "debugfs", "delta_generator", ], } apex_key { name: "com.android.gki.key", public_key: "com.android.gki.avbpubkey", private_key: "com.android.gki.pem", } // Use cc_prebuilt_binary because sh_binary does not support product_specific. // TODO(b/169954965): Change to sh_binary when product_specific is supported. cc_prebuilt_binary { name: "com.android.gki.preinstall", product_specific: true, srcs: ["preinstall.sh"], apex_available: ["com.android.gki.*"], strip: { none: true, }, } // Common defaults for all GKI APEXes. apex_defaults { name: "com.android.gki_defaults", product_specific: true, binaries: [ "update_engine_stable_client", "com.android.gki.preinstall", ], file_contexts: ":com.android.gki-file_contexts", // Key to sign apex_payload.img key: "com.android.gki.key", // Key to sign APEX. Left empty to use defaults. certificate: "", updatable: false, } // Helper binary to build APEX manifest for GKI. cc_binary_host { name: "build_gki_apex_manifest", srcs: [ "build_gki_apex_manifest.cpp", ], static_libs: [ "libbase", "libgflags", "libjsoncpp", "libkver", "liblog", ], cflags: [ "-Wall", "-Werror", ], } // Build GKI APEX 5.4-android12-0 from $(PRODUCT_OUT)/boot.img. // Also generate test packages. gki_apex { name: "com.android.gki.kmi_5_4_android12_0", installable: true, kmi_version: "5.4-android12-0", product_out_path: "boot.img", gen_test: true, } // Build GKI APEX 5.10-android12-0 from $(PRODUCT_OUT)/boot.img. // Also generate test packages. // TODO(b/186647770): Delete when no devices install it. gki_apex { name: "com.android.gki.kmi_5_10_android12_0", installable: true, kmi_version: "5.10-android12-0", product_out_path: "boot.img", gen_test: true, } // Build GKI APEX 5.10-android12-1 from $(PRODUCT_OUT)/boot.img. // Also generate test packages. // TODO(b/186647770): Delete when no devices install it. gki_apex { name: "com.android.gki.kmi_5_10_android12_1", installable: true, kmi_version: "5.10-android12-1", product_out_path: "boot.img", gen_test: true, } // Build GKI APEX 5.10-android12-unstable from $(PRODUCT_OUT)/boot.img. // Also generate test packages. gki_apex { name: "com.android.gki.kmi_5_10_android12_unstable", installable: true, kmi_version: "5.10-android12-unstable", product_out_path: "boot.img", gen_test: true, } // Build GKI APEX 5.4-android12-0 from $(PRODUCT_OUT)/boot-5.4.img gki_apex { name: "com.android.gki.kmi_5_4_android12_0_boot-5.4", installable: false, kmi_version: "5.4-android12-0", product_out_path: "boot-5.4.img", } // Build GKI APEX 5.10-android12-0 from $(PRODUCT_OUT)/boot-5.10.img // TODO(b/186647770): Delete when no devices install it. gki_apex { name: "com.android.gki.kmi_5_10_android12_0_boot-5.10", installable: false, kmi_version: "5.10-android12-0", product_out_path: "boot-5.10.img", } // Build GKI APEX 5.10-android12-1 from $(PRODUCT_OUT)/boot-5.10.img // TODO(b/186647770): Delete when no devices install it. gki_apex { name: "com.android.gki.kmi_5_10_android12_1_boot-5.10", installable: false, kmi_version: "5.10-android12-1", product_out_path: "boot-5.10.img", } // Build GKI APEX 5.10-android12-unstable from $(PRODUCT_OUT)/boot-5.10.img gki_apex { name: "com.android.gki.kmi_5_10_android12_unstable_boot-5.10", installable: false, kmi_version: "5.10-android12-unstable", product_out_path: "boot-5.10.img", } // List of all test APEXes for GkiInstallTest. Append "_test_high" and "_test_low" for each // gki_apex with gen_test:true. filegroup { name: "gki_install_test_files", srcs: [ ":com.android.gki.kmi_5_4_android12_0_test_high", ":com.android.gki.kmi_5_4_android12_0_test_low", ":com.android.gki.kmi_5_10_android12_0_test_high", ":com.android.gki.kmi_5_10_android12_0_test_low", ":com.android.gki.kmi_5_10_android12_unstable_test_high", ":com.android.gki.kmi_5_10_android12_unstable_test_low", ], }