Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/trusty/trusty/vendor/google/aosp/scripts/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 23 kB image not shown  

Quelle  Android.bp   Sprache: unbekannt

 
Spracherkennung für: .bp vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// Copyright (C) 2025 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.

python_binary_host {
    name: "build_trusty",
    srcs: ["*.py"],
    main: "build.py",
}

dirgroup {
    name: "trusty_aosp_dirgroups",
    dirs: [
        "//device/generic/trusty:trusty_dirgroup_device_generic_trusty",
        ":trusty_dirgroup_external_boringssl",
        ":trusty_dirgroup_external_dtc",
        ":trusty_dirgroup_external_freetype",
        ":trusty_dirgroup_external_googletest",
        ":trusty_dirgroup_external_libcxx",
        ":trusty_dirgroup_external_libcxxabi",
        ":trusty_dirgroup_external_nanopb-c",
        ":trusty_dirgroup_external_open-dice",
        ":trusty_dirgroup_external_python_fdt",
        ":trusty_dirgroup_external_python_jinja",
        ":trusty_dirgroup_external_python_markupsafe",
        ":trusty_dirgroup_external_python_six",
        ":trusty_dirgroup_external_rust_crates_acpi",
        ":trusty_dirgroup_external_rust_crates_anyhow",
        ":trusty_dirgroup_external_rust_crates_arrayvec",
        ":trusty_dirgroup_external_rust_crates_async-trait",
        ":trusty_dirgroup_external_rust_crates_bit_field",
        ":trusty_dirgroup_external_rust_crates_bitflags",
        ":trusty_dirgroup_external_rust_crates_buddy_system_allocator",
        ":trusty_dirgroup_external_rust_crates_byteorder",
        ":trusty_dirgroup_external_rust_crates_cfg-if",
        ":trusty_dirgroup_external_rust_crates_ciborium",
        ":trusty_dirgroup_external_rust_crates_ciborium-io",
        ":trusty_dirgroup_external_rust_crates_ciborium-ll",
        ":trusty_dirgroup_external_rust_crates_const-oid",
        ":trusty_dirgroup_external_rust_crates_coset",
        ":trusty_dirgroup_external_rust_crates_der",
        ":trusty_dirgroup_external_rust_crates_der_derive",
        ":trusty_dirgroup_external_rust_crates_downcast",
        ":trusty_dirgroup_external_rust_crates_downcast-rs",
        ":trusty_dirgroup_external_rust_crates_either",
        ":trusty_dirgroup_external_rust_crates_enumn",
        ":trusty_dirgroup_external_rust_crates_flagset",
        ":trusty_dirgroup_external_rust_crates_foreign-types",
        ":trusty_dirgroup_external_rust_crates_foreign-types-shared",
        ":trusty_dirgroup_external_rust_crates_fragile",
        ":trusty_dirgroup_external_rust_crates_half",
        ":trusty_dirgroup_external_rust_crates_hex",
        ":trusty_dirgroup_external_rust_crates_itertools",
        ":trusty_dirgroup_external_rust_crates_lazy_static",
        ":trusty_dirgroup_external_rust_crates_libc",
        ":trusty_dirgroup_external_rust_crates_lock_api",
        ":trusty_dirgroup_external_rust_crates_log",
        ":trusty_dirgroup_external_rust_crates_mockall",
        ":trusty_dirgroup_external_rust_crates_mockall_derive",
        ":trusty_dirgroup_external_rust_crates_num-derive",
        ":trusty_dirgroup_external_rust_crates_num-integer",
        ":trusty_dirgroup_external_rust_crates_num-traits",
        ":trusty_dirgroup_external_rust_crates_once_cell",
        ":trusty_dirgroup_external_rust_crates_open-enum",
        ":trusty_dirgroup_external_rust_crates_open-enum-derive",
        ":trusty_dirgroup_external_rust_crates_openssl",
        ":trusty_dirgroup_external_rust_crates_openssl-macros",
        ":trusty_dirgroup_external_rust_crates_paste",
        ":trusty_dirgroup_external_rust_crates_pci_types",
        ":trusty_dirgroup_external_rust_crates_pkcs1",
        ":trusty_dirgroup_external_rust_crates_pkcs8",
        ":trusty_dirgroup_external_rust_crates_predicates",
        ":trusty_dirgroup_external_rust_crates_predicates-core",
        ":trusty_dirgroup_external_rust_crates_predicates-tree",
        ":trusty_dirgroup_external_rust_crates_proc-macro2",
        ":trusty_dirgroup_external_rust_crates_protobuf",
        ":trusty_dirgroup_external_rust_crates_protobuf-support",
        ":trusty_dirgroup_external_rust_crates_quote",
        ":trusty_dirgroup_external_rust_crates_scopeguard",
        ":trusty_dirgroup_external_rust_crates_sec1",
        ":trusty_dirgroup_external_rust_crates_serde",
        ":trusty_dirgroup_external_rust_crates_serde_core",
        ":trusty_dirgroup_external_rust_crates_serde_derive",
        ":trusty_dirgroup_external_rust_crates_smccc",
        ":trusty_dirgroup_external_rust_crates_spin",
        ":trusty_dirgroup_external_rust_crates_spki",
        ":trusty_dirgroup_external_rust_crates_static_assertions",
        ":trusty_dirgroup_external_rust_crates_syn",
        ":trusty_dirgroup_external_rust_crates_synstructure",
        ":trusty_dirgroup_external_rust_crates_termcolor",
        ":trusty_dirgroup_external_rust_crates_termtree",
        ":trusty_dirgroup_external_rust_crates_thiserror",
        ":trusty_dirgroup_external_rust_crates_thiserror-impl",
        ":trusty_dirgroup_external_rust_crates_unicode-ident",
        ":trusty_dirgroup_external_rust_crates_unicode-xid",
        ":trusty_dirgroup_external_rust_crates_uuid",
        ":trusty_dirgroup_external_rust_crates_virtio-drivers-and-devices",
        ":trusty_dirgroup_external_rust_crates_vm-memory",
        ":trusty_dirgroup_external_rust_crates_x509-cert",
        ":trusty_dirgroup_external_rust_crates_zerocopy",
        ":trusty_dirgroup_external_rust_crates_zerocopy-derive",
        ":trusty_dirgroup_external_rust_crates_zeroize",
        ":trusty_dirgroup_external_rust_crates_zeroize_derive",
        ":trusty_dirgroup_external_scudo",
        ":trusty_dirgroup_external_trusty_arm-trusted-firmware",
        ":trusty_dirgroup_external_trusty_bootloader",
        ":trusty_dirgroup_external_trusty_headers",
        ":trusty_dirgroup_external_trusty_lk",
        ":trusty_dirgroup_external_trusty_musl",
        ":trusty_dirgroup_frameworks_hardware_interfaces",
        ":trusty_dirgroup_frameworks_native",
        ":trusty_dirgroup_hardware_interfaces_gatekeeper_aidl",
        ":trusty_dirgroup_hardware_interfaces_security_keymint_aidl",
        ":trusty_dirgroup_hardware_interfaces_security_secureclock_aidl",
        ":trusty_dirgroup_hardware_interfaces_security_see",
        ":trusty_dirgroup_hardware_interfaces_security_sharedsecret",
        ":trusty_dirgroup_hardware_interfaces_staging_security_see",
        ":trusty_dirgroup_hardware_libhardware",
        ":trusty_dirgroup_packages_modules_virtualization_libs",
        ":trusty_dirgroup_prebuilts_build-tools",
        ":trusty_dirgroup_prebuilts_clang-tools",
        ":trusty_dirgroup_prebuilts_clang_host_linux-x86",
        ":trusty_dirgroup_prebuilts_gcc_linux-x86_host_x86_64-linux-glibc2.17-4.8",
        ":trusty_dirgroup_prebuilts_misc",
        ":trusty_dirgroup_prebuilts_rust",
        ":trusty_dirgroup_system_authgraph",
        ":trusty_dirgroup_system_core",
        ":trusty_dirgroup_system_gatekeeper",
        ":trusty_dirgroup_system_keymaster",
        ":trusty_dirgroup_system_keymint",
        ":trusty_dirgroup_system_libbase",
        ":trusty_dirgroup_system_libcppbor",
        ":trusty_dirgroup_system_secretkeeper",
        ":trusty_dirgroup_system_security",
        ":trusty_dirgroup_system_see_authmgr",
        ":trusty_dirgroup_system_teeui",
        ":trusty_dirgroup_system_tools_aidl",
        ":trusty_dirgroup_test_vts-testcase_hal_treble_vintf_aidl",
        ":trusty_dirgroup_trusty_device_arm_generic-arm64",
        ":trusty_dirgroup_trusty_device_common",
        ":trusty_dirgroup_trusty_device_desktop",
        ":trusty_dirgroup_trusty_device_x86_generic-x86_64",
        ":trusty_dirgroup_trusty_kernel",
        ":trusty_dirgroup_trusty_user_app_authmgr",
        ":trusty_dirgroup_trusty_user_app_avb",
        ":trusty_dirgroup_trusty_user_app_cast-auth",
        ":trusty_dirgroup_trusty_user_app_confirmationui",
        ":trusty_dirgroup_trusty_user_app_gatekeeper",
        ":trusty_dirgroup_trusty_user_app_keymaster",
        ":trusty_dirgroup_trusty_user_app_keymint",
        ":trusty_dirgroup_trusty_user_app_sample",
        ":trusty_dirgroup_trusty_user_app_secretkeeper",
        ":trusty_dirgroup_trusty_user_app_storage",
        ":trusty_dirgroup_trusty_user_base",
        ":trusty_dirgroup_trusty_user_desktop",
        ":trusty_dirgroup_trusty_vendor_google_aosp",
    ],
    visibility: [
        "//trusty/vendor/google/aosp/scripts",
        "//trusty/vendor/google/proprietary/scripts",
    ],
}

filegroup {
    name: "trusty_aosp_filegroups",
    srcs: [":trusty_filegroup_external_libcxx"],
}

genrule_defaults {
    name: "trusty_aosp.gen.defaults",
    use_nsjail: true,
    uses_order_only_build_date_file: true,
    uses_order_only_build_number_file: true,
    dir_srcs: [
        ":trusty_aosp_dirgroups",
    ],
    srcs: [":trusty_aosp_filegroups"],
    tools: [
        "aidl",
        "aidl_rust_glue",
        "aprotoc",
        "build_trusty",
        "trusty_metrics_atoms_protoc_plugin",
    ],
    keep_gendir: true,
}

genrule_cmd_template = "(mkdir -p $(genDir)/build-root && " +
    "cp -t . external/trusty/lk/makefile trusty/vendor/google/aosp/lk_inc.mk && " +
    "AIDL_TOOL=$(location aidl) " +
    "AIDL_RUST_GLUE_TOOL=$(location aidl_rust_glue) PROTOC_TOOL=$(location aprotoc) " +
    "PROTOC_PLUGIN_BINARY=$(location trusty_metrics_atoms_protoc_plugin) TRUSTY_SKIP_DOCS=true " +
    "BUILDDATE=\"$$(date --date=@$$(cat $(build_date_file)))\" " +
    "DESKTOP_TRUSTY_BUILD_PARAMS_RS=\"$$DESKTOP_TRUSTY_BUILD_PARAMS_RS\" " +
    "MICRODROID_KERNEL_HASHES_RS=\"$$MICRODROID_KERNEL_HASHES_RS\" " +
    "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=\"$$PLATFORM_SECURITY_PATCH_TIMESTAMP_RS\" " +
    "$(location build_trusty) --script-dir trusty/vendor/google/aosp/scripts --buildid \"$$(cat $(build_number_file))\" --verbose $$PROJECT_NAME " +
    "--build-root $(genDir)/build-root 1>$(genDir)/stdout.log 2>$(genDir)/stderr.log || (" +
    "echo Trusty build FAILED; echo stdout:; cat $(genDir)/stdout.log; echo stderr:; cat $(genDir)/stderr.log; false)) && " +
    "cp -f $(genDir)/build-root/build-$$PROJECT_NAME/lk.$$OUT_EXT $(out)"

genrule {
    name: "trusty_test_vm_arm64.bin",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_test_vm_arm64.bin",
    ],
    // IMPORTANT: OUT_EXT=bin for arm64
    // the raw binary (not the elf) is needed for the avb signature process
    cmd: "PROJECT_NAME=vm-arm64-test" +
        select(soong_config_variable("trusty_system_vm", "buildtype"), {
            "userdebug": "-userdebug",
            "eng": "-userdebug",
            default: "-user",
        }) + "; OUT_EXT=bin;" + genrule_cmd_template,
}

genrule {
    name: "trusty_test_vm_x86_64.elf",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_test_vm_x86_64.elf",
    ],
    // IMPORTANT: OUT_EXT=elf for x86_64
    // x86_64 VM payloads are not yet signed; crosvm consumes the elf
    cmd: "PROJECT_NAME=vm-x86_64-test" +
        select(soong_config_variable("trusty_system_vm", "buildtype"), {
            "userdebug": "-userdebug",
            "eng": "-userdebug",
            default: "-user",
        }) + "; OUT_EXT=elf;" + genrule_cmd_template,
}

genrule {
    name: "trusty_test_vm_os_arm64.bin",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_test_vm_os_arm64.bin",
    ],
    // IMPORTANT: OUT_EXT=bin for arm64
    // the raw binary (not the elf) is needed for the avb signature process
    cmd: "PROJECT_NAME=vm-arm64-test_os" + select(soong_config_variable("trusty_system_vm", "buildtype"), {
        "userdebug": "-userdebug",
        "eng": "-userdebug",
        default: "-user",
    }) + "; OUT_EXT=bin;" + genrule_cmd_template,
}

genrule {
    name: "trusty_test_vm_os_x86_64.elf",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_test_vm_os_x86_64.elf",
    ],
    // IMPORTANT: OUT_EXT=elf for x86_64
    // x86_64 VM payloads are not yet signed; crosvm consumes the elf
    cmd: "PROJECT_NAME=vm-x86_64-test_os" + select(soong_config_variable("trusty_system_vm", "buildtype"), {
        "userdebug": "-userdebug",
        "eng": "-userdebug",
        default: "-user",
    }) + "; OUT_EXT=elf;" + genrule_cmd_template,
}

genrule {
    name: "trusty_security_vm_arm64.bin",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_security_vm_arm64.bin",
    ],
    // IMPORTANT: OUT_EXT=bin for arm64
    // the raw binary (not the elf) is needed for the avb signature process
    cmd: "PROJECT_NAME=vm-arm64-security" + select(soong_config_variable("trusty_system_vm", "placeholder_trusted_hal"), {
        true: "-placeholder-trusted-hal",
        default: "",
    }) + select(soong_config_variable("trusty_system_vm", "buildtype"), {
        "userdebug": "-userdebug",
        "eng": "-userdebug",
        default: "-user",
    }) + "; OUT_EXT=bin;" + genrule_cmd_template,
}

genrule {
    name: "trusty_memshare_vm_arm64.bin",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_memshare_vm_arm64.bin",
    ],
    // IMPORTANT: OUT_EXT=bin for arm64
    // the raw binary (not the elf) is needed for the avb signature process
    cmd: "PROJECT_NAME=vm-arm64-memshare" + select(soong_config_variable("trusty_vendor_vm", "buildtype"), {
        "userdebug": "-userdebug",
        "eng": "-userdebug",
        default: "-user",
    }) + "; OUT_EXT=bin;" + genrule_cmd_template,
}

genrule {
    name: "trusty_security_vm_x86_64.elf",
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    out: [
        "trusty_security_vm_x86_64.elf",
    ],
    // IMPORTANT: OUT_EXT=elf for x86_64
    // x86_64 VM payloads are not yet signed; crosvm consumes the elf
    cmd: "PROJECT_NAME=vm-x86_64-security" + select(soong_config_variable("trusty_system_vm", "placeholder_trusted_hal"), {
        true: "-placeholder-trusted-hal",
        default: "",
    }) + select(soong_config_variable("trusty_system_vm", "buildtype"), {
        "userdebug": "-userdebug",
        "eng": "-userdebug",
        default: "-user",
    }) + "; OUT_EXT=elf;" + genrule_cmd_template,
}

// Use cc_genrule to pass on target arch to Microdroid kernel hash generator.
cc_genrule {
    name: "trusty_desktop_vm_arm64.bin",
    enabled: false,
    arch: {
        arm64: {
            enabled: true,
        },
    },
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    srcs: [
        ":desktop_trusty_build_params_rs",
        ":microdroid_kernel_hashes_rs",
        ":platform_security_patch_timestamp_rs",
    ],
    out: [
        "trusty_desktop_vm_arm64.bin",
    ],
    cmd: "PROJECT_NAME=desktop-arm64; OUT_EXT=bin;" +
        "DESKTOP_TRUSTY_BUILD_PARAMS_RS=" +
        "$$(dirname $(locations :desktop_trusty_build_params_rs));" +
        "MICRODROID_KERNEL_HASHES_RS=" +
        "$$(dirname $(locations :microdroid_kernel_hashes_rs));" +
        "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=" +
        "$$(dirname $(locations :platform_security_patch_timestamp_rs));" +
        genrule_cmd_template,
}

cc_genrule {
    name: "trusty_desktop_vm_arm64_ext_boot.bin",
    enabled: false,
    arch: {
        arm64: {
            enabled: true,
        },
    },
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    srcs: [
        ":desktop_trusty_build_params_rs",
        ":microdroid_kernel_hashes_rs",
        ":platform_security_patch_timestamp_rs",
    ],
    out: [
        "trusty_desktop_vm_arm64_ext_boot.bin",
    ],
    cmd: "PROJECT_NAME=desktop-arm64_ext_boot; OUT_EXT=bin;" +
        "DESKTOP_TRUSTY_BUILD_PARAMS_RS=" +
        "$$(dirname $(locations :desktop_trusty_build_params_rs));" +
        "MICRODROID_KERNEL_HASHES_RS=" +
        "$$(dirname $(locations :microdroid_kernel_hashes_rs));" +
        "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=" +
        "$$(dirname $(locations :platform_security_patch_timestamp_rs));" +
        genrule_cmd_template,
}

cc_genrule {
    name: "trusty_desktop_test_vm_arm64.bin",
    enabled: false,
    arch: {
        arm64: {
            enabled: true,
        },
    },
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    srcs: [
        ":desktop_trusty_build_params_rs",
        ":microdroid_kernel_hashes_rs",
        ":platform_security_patch_timestamp_rs",
    ],
    out: [
        "trusty_desktop_test_vm_arm64.bin",
    ],
    cmd: "PROJECT_NAME=desktop-arm64-test; OUT_EXT=bin;" +
        "DESKTOP_TRUSTY_BUILD_PARAMS_RS=" +
        "$$(dirname $(locations :desktop_trusty_build_params_rs));" +
        "MICRODROID_KERNEL_HASHES_RS=" +
        "$$(dirname $(locations :microdroid_kernel_hashes_rs));" +
        "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=" +
        "$$(dirname $(locations :platform_security_patch_timestamp_rs));" +
        genrule_cmd_template,
}

cc_genrule {
    name: "trusty_desktop_vm_x86_64.bin",
    enabled: false,
    arch: {
        x86_64: {
            enabled: true,
        },
    },
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    srcs: [
        ":desktop_trusty_build_params_rs",
        ":microdroid_kernel_hashes_rs",
        ":platform_security_patch_timestamp_rs",
    ],
    out: [
        "trusty_desktop_vm_x86_64.bin",
    ],
    cmd: "PROJECT_NAME=desktop-x86_64; OUT_EXT=bin;" +
        "DESKTOP_TRUSTY_BUILD_PARAMS_RS=" +
        "$$(dirname $(locations :desktop_trusty_build_params_rs));" +
        "MICRODROID_KERNEL_HASHES_RS=" +
        "$$(dirname $(locations :microdroid_kernel_hashes_rs));" +
        "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=" +
        "$$(dirname $(locations :platform_security_patch_timestamp_rs));" +
        genrule_cmd_template,
}

cc_genrule {
    name: "trusty_desktop_vm_x86_64_ext_boot.bin",
    enabled: false,
    arch: {
        x86_64: {
            enabled: true,
        },
    },
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    srcs: [
        ":desktop_trusty_build_params_rs",
        ":microdroid_kernel_hashes_rs",
        ":platform_security_patch_timestamp_rs",
    ],
    out: [
        "trusty_desktop_vm_x86_64_ext_boot.bin",
    ],
    cmd: "PROJECT_NAME=desktop-x86_64_ext_boot; OUT_EXT=bin;" +
        "DESKTOP_TRUSTY_BUILD_PARAMS_RS=" +
        "$$(dirname $(locations :desktop_trusty_build_params_rs));" +
        "MICRODROID_KERNEL_HASHES_RS=" +
        "$$(dirname $(locations :microdroid_kernel_hashes_rs));" +
        "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=" +
        "$$(dirname $(locations :platform_security_patch_timestamp_rs));" +
        genrule_cmd_template,
}

cc_genrule {
    name: "trusty_desktop_test_vm_x86_64.bin",
    enabled: false,
    arch: {
        x86_64: {
            enabled: true,
        },
    },
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    srcs: [
        ":desktop_trusty_build_params_rs",
        ":microdroid_kernel_hashes_rs",
        ":platform_security_patch_timestamp_rs",
    ],
    out: [
        "trusty_desktop_test_vm_x86_64.bin",
    ],
    cmd: "PROJECT_NAME=desktop-x86_64-test; OUT_EXT=bin;" +
        "DESKTOP_TRUSTY_BUILD_PARAMS_RS=" +
        "$$(dirname $(locations :desktop_trusty_build_params_rs));" +
        "MICRODROID_KERNEL_HASHES_RS=" +
        "$$(dirname $(locations :microdroid_kernel_hashes_rs));" +
        "PLATFORM_SECURITY_PATCH_TIMESTAMP_RS=" +
        "$$(dirname $(locations :platform_security_patch_timestamp_rs));" +
        genrule_cmd_template,
}

// - Trusty VM payloads on arm64 are pvmfw enabled
//   AVF VM build system uses the raw binary image,
//   adds pvmfw footer and generates a pvmfw-compliant signed elf file)
// - Trusty VM payload on x86 are for now loaded in Cuttlefish unsigned
//   the unsigned generated elf is used directly by AV
//
// see packages/modules/Virtualization/guest/trusty

prebuilt_etc {
    name: "trusty_test_vm_unsigned",
    enabled: false,
    arch: {
        arm64: {
            src: ":trusty_test_vm_arm64.bin",
            filename: "trusty-test_vm.bin",
            enabled: true,
        },
        x86_64: {
            src: ":trusty_test_vm_x86_64.elf",
            filename: "trusty-test_vm.elf",
            enabled: true,
        },
    },
}

prebuilt_etc {
    name: "trusty_test_vm_os_unsigned",
    enabled: false,
    arch: {
        arm64: {
            src: ":trusty_test_vm_os_arm64.bin",
            filename: "trusty-test_vm_os.bin",
            enabled: true,
        },
        x86_64: {
            src: ":trusty_test_vm_os_x86_64.elf",
            filename: "trusty-test_vm_os.elf",
            enabled: true,
        },
    },
}

prebuilt_etc {
    name: "trusty_security_vm_unsigned",
    enabled: select((os(), arch(), soong_config_variable("trusty_system_vm", "enabled")), {
        ("android", "arm64", true): true,
        ("android", "x86_64", true): true,
        (default, default, default): false,
    }),
    relative_install_path: "vm/trusty_vm",
    system_ext_specific: true,
    arch: {
        arm64: {
            src: ":trusty_security_vm_arm64.bin",
            filename: "trusty_security_vm_unsigned.bin",
        },
        x86_64: {
            src: ":trusty_security_vm_x86_64.elf",
            filename: "trusty_security_vm_unsigned.elf",
        },
    },
}

prebuilt_etc {
    name: "trusty_memshare_vm_unsigned",
    enabled: select((os(), arch(), soong_config_variable("trusty_vendor_vm", "enabled")), {
        ("android", "arm64", true): true,
        ("android", "x86_64", true): false,
        (default, default, default): false,
    }),
    relative_install_path: "vm/trusty_vm",
    vendor: true,
    arch: {
        arm64: {
            src: ":trusty_memshare_vm_arm64.bin",
            filename: "trusty_memshare_vm_unsigned.bin",
        },
        /*x86_64: {
            src: ":trusty_security_vm_x86_64.elf",
            filename: "trusty_memshare_vm_unsigned.elf",
        },*/
    },
}

// Trusty TEE image with Widevine OPK TA
genrule_tee_cmd_template = "(mkdir -p $(genDir)/build-root && " +
    "cp -t . external/trusty/lk/makefile trusty/vendor/google/aosp/lk_inc.mk && " +
    "AIDL_TOOL=$(location aidl) " +
    "AIDL_RUST_GLUE_TOOL=$(location aidl_rust_glue) PROTOC_TOOL=$(location aprotoc) " +
    "PROTOC_PLUGIN_BINARY=$(location trusty_metrics_atoms_protoc_plugin) " +
    "QEMU_PREBUILTS_DIR=$(location trusty_qemu_system_aarch64) " +
    "MKE2FS=$(location mke2fs) " +
    "TRUSTY_SKIP_DOCS=true " +
    "PACKAGE_TRUSTY_IMAGES_ONLY=true " +
    "BUILDDATE=\"$$(date --date=@$$(cat $(build_date_file)))\" " +
    "$(location build_trusty) --script-dir trusty/vendor/google/aosp/scripts --buildid \"$$(cat $(build_number_file))\" --verbose $$PROJECT_NAME " +
    "--skip-tests --build-root $(genDir)/build-root 1>$(genDir)/stdout.log 2>$(genDir)/stderr.log || (" +
    "echo Trusty build FAILED; echo stdout:; cat $(genDir)/stdout.log; echo stderr:; cat $(genDir)/stderr.log; false)) && " +
    "cp -f $(genDir)/build-root/build-$$PROJECT_NAME/trusty_image_package.tar.gz $(out)"

genrule {
    name: "trusty_tee_package",
    enabled: select(soong_config_variable("trusty_tee", "enabled"), {
        true: true,
        default: false,
    }),
    defaults: [
        "trusty_aosp.gen.defaults",
    ],
    tools: [
        "trusty_qemu_system_aarch64",
        "mke2fs",
    ],
    out: [
        "trusty_tee_package.tar.gz",
    ],
    dist: {
        targets: ["trusty-tee_package"],
    },
    cmd: "PROJECT_NAME=qemu-generic-arm64-gicv3-test-debug; " + genrule_tee_cmd_template,
}

[Dauer der Verarbeitung: 0.26 Sekunden, vorverarbeitet 2026-06-27]