1// Copyright (C) 2025 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package { 16 // See: http://go/android-license-faq 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20java_genrule_host { 21 name: "otatools_package_dep_jars", 22 tools: ["soong_zip"], 23 compile_multilib: "first", 24 cmd: "mkdir -p $(genDir)/framework && " + 25 "cp $(in) $(genDir)/framework && " + 26 "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)/framework", 27 srcs: [ 28 ":apksigner", 29 ":boot_signer", 30 ":signapk", 31 ":verity_signer", 32 ], 33 out: ["otatools_package_dep_jars.zip"], 34} 35 36cc_genrule { 37 name: "otatools_package_dep_libs", 38 host_supported: true, 39 device_supported: false, 40 compile_multilib: "first", 41 tools: ["soong_zip"], 42 cmd: "mkdir -p $(genDir)/$$CC_MULTILIB &&" + 43 "cp $(in) $(genDir)/$$CC_MULTILIB && " + 44 "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)/$$CC_MULTILIB", 45 srcs: [ 46 ":libbase", 47 ":libbrillo", 48 ":libbrillo-stream", 49 ":libc++", 50 "//external/libchrome:libchrome", 51 ":libconscrypt_openjdk_jni", 52 ":libcrypto", 53 ":libcrypto_utils", 54 ":libcutils", 55 ":libevent", 56 ":libext2_blkid", 57 ":libext2_com_err", 58 ":libext2_e2p", 59 ":libext2_quota", 60 ":libext2_uuid", 61 ":libext2fs", 62 ":libext4_utils", 63 ":libfec", 64 ":libhidl-gen-utils", 65 ":libhidlmetadata", 66 ":libicui18n", 67 ":libicuuc", 68 ":liblog", 69 ":liblp", 70 ":liblz4", 71 ":libpcre2", 72 ":libprocessgroup", 73 ":libprotobuf-cpp-lite", 74 ":libselinux", 75 ":libsparse", 76 ":libsqlite", 77 ":libsquashfs_utils", 78 ":libssl", 79 ":libz", 80 ":libziparchive", 81 ], 82 out: ["otatools_package_dep_libs.zip"], 83} 84 85cc_genrule { 86 name: "otatools_package_dep_bins", 87 host_supported: true, 88 device_supported: false, 89 compile_multilib: "first", 90 tools: [ 91 "apksigner", 92 "boot_signer", 93 "merge_zips", 94 "signapk", 95 "verity_signer", 96 ], 97 cmd: "mkdir -p $(genDir)/bin && " + 98 "cp $(in) $(genDir)/bin && " + 99 "cp $(location apksigner) $(location boot_signer) $(location merge_zips) $(location signapk) $(location verity_signer) $(genDir)/bin && " + 100 "$(location :soong_zip) -o $(out) -C $(genDir) -D $(genDir)/bin", 101 srcs: [ 102 ":aapt2", 103 ":add_img_to_target_files", 104 ":apex_compression_tool", 105 ":apexd_host", 106 ":apexer", 107 ":append2simg", 108 ":avbtool", 109 ":blk_alloc_to_base_fs", 110 ":brillo_update_payload", 111 ":brotli", 112 ":bsdiff", 113 ":build_image", 114 ":build_super_image", 115 ":build_verity_metadata", 116 ":build_verity_tree", 117 ":care_map_generator", 118 ":check_ota_package_signature", 119 ":check_target_files_signatures", 120 ":check_target_files_vintf", 121 ":checkvintf", 122 ":create_brick_ota", 123 ":deapexer", 124 ":debugfs_static", 125 ":delta_generator", 126 ":e2fsck", 127 ":e2fsdroid", 128 ":fc_sort", 129 ":fec", 130 ":fs_config", 131 ":fsck.erofs", 132 ":fsck.f2fs", 133 ":generate_verity_key", 134 ":host_init_verifier", 135 ":img2simg", 136 ":img_from_target_files", 137 ":initrd_bootconfig", 138 ":lpmake", 139 ":lpunpack", 140 ":lz4", 141 ":make_f2fs", 142 ":make_f2fs_casefold", 143 ":merge_ota", 144 ":merge_target_files", 145 "//device/generic/goldfish:mk_combined_img", 146 ":mkbootfs", 147 ":mkbootimg", 148 ":mke2fs", 149 ":mkf2fsuserimg", 150 ":mkfs.erofs", 151 ":mksquashfs", 152 ":mksquashfsimage", 153 ":mkuserimg_mke2fs", 154 ":ota_extractor", 155 ":ota_from_target_files", 156 ":repack_bootimg", 157 ":resize2fs", 158 ":secilc", 159 ":sefcontext_compile", 160 ":sgdisk", 161 ":shflags", 162 ":sign_apex", 163 ":sign_target_files_apks", 164 ":sign_virt_apex", 165 ":simg2img", 166 ":sload_f2fs", 167 ":soong_zip", 168 ":toybox", 169 ":tune2fs", 170 ":unpack_bootimg", 171 ":update_device", 172 ":validate_target_files", 173 ":verity_verifier", 174 ":zip2zip", 175 ":zipalign", 176 ":zucchini", 177 ] + select(soong_config_variable("otatools", "use_build_mixed_kernels_ramdisk"), { 178 true: [":build_mixed_kernels_ramdisk_host"], 179 default: [], 180 }) + select(soong_config_variable("otatools", "use_bootable_deprecated_ota_applypatch"), { 181 true: [ 182 ":imgdiff", 183 ":update_host_simulator", 184 ], 185 default: [], 186 }), 187 out: ["otatools_package_dep_bins.zip"], 188} 189 190java_genrule_host { 191 name: "otatools_package", 192 tools: ["merge_zips"], 193 compile_multilib: "first", 194 cmd: "$(location merge_zips) $(out) $(in)", 195 srcs: [ 196 ":otatools_package_cert_files", 197 ":otatools_package_dep_bins", 198 ":otatools_package_dep_jars", 199 ":otatools_package_dep_libs", 200 ":otatools_package_releasetools", 201 ], 202 // TODO: Rename as "otatools.zip" when the rest files are ready. 203 out: ["otatools_temp.zip"], 204 dist: { 205 targets: [ 206 "otatools-package-temp", 207 ], 208 }, 209} 210 211otatools_package_cert_files { 212 name: "otatools_package_cert_files", 213} 214