Home | History | Annotate | Download | only in update_engine
      1 #
      2 # Copyright (C) 2015 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 LOCAL_PATH := $(my-dir)
     18 
     19 # Default values for the USE flags. Override these USE flags from your product
     20 # by setting BRILLO_USE_* values. Note that we define local variables like
     21 # local_use_* to prevent leaking our default setting for other packages.
     22 local_use_binder := $(if $(BRILLO_USE_BINDER),$(BRILLO_USE_BINDER),1)
     23 local_use_hwid_override := \
     24     $(if $(BRILLO_USE_HWID_OVERRIDE),$(BRILLO_USE_HWID_OVERRIDE),0)
     25 # "libcros" gates the LibCrosService exposed by the Chrome OS' chrome browser to
     26 # the system layer.
     27 local_use_libcros := $(if $(BRILLO_USE_LIBCROS),$(BRILLO_USE_LIBCROS),0)
     28 local_use_mtd := $(if $(BRILLO_USE_MTD),$(BRILLO_USE_MTD),0)
     29 
     30 # IoT devices use Omaha for updates.
     31 local_use_omaha := $(if $(filter true,$(PRODUCT_IOT)),1,0)
     32 
     33 ue_common_cflags := \
     34     -DUSE_BINDER=$(local_use_binder) \
     35     -DUSE_HWID_OVERRIDE=$(local_use_hwid_override) \
     36     -DUSE_LIBCROS=$(local_use_libcros) \
     37     -DUSE_MTD=$(local_use_mtd) \
     38     -DUSE_OMAHA=$(local_use_omaha) \
     39     -D_FILE_OFFSET_BITS=64 \
     40     -D_POSIX_C_SOURCE=199309L \
     41     -Wa,--noexecstack \
     42     -Wall \
     43     -Werror \
     44     -Wextra \
     45     -Wformat=2 \
     46     -Wno-psabi \
     47     -Wno-unused-parameter \
     48     -ffunction-sections \
     49     -fstack-protector-strong \
     50     -fvisibility=hidden
     51 ue_common_cppflags := \
     52     -Wnon-virtual-dtor \
     53     -fno-strict-aliasing
     54 ue_common_ldflags := \
     55     -Wl,--gc-sections
     56 ue_common_c_includes := \
     57     $(LOCAL_PATH)/client_library/include \
     58     system
     59 ue_common_shared_libraries := \
     60     libbrillo-stream \
     61     libbrillo \
     62     libchrome
     63 ue_common_static_libraries := \
     64     libgtest_prod \
     65 
     66 # update_metadata-protos (type: static_library)
     67 # ========================================================
     68 # Protobufs.
     69 ue_update_metadata_protos_exported_static_libraries := \
     70     update_metadata-protos
     71 ue_update_metadata_protos_exported_shared_libraries := \
     72     libprotobuf-cpp-lite
     73 
     74 ue_update_metadata_protos_src_files := \
     75     update_metadata.proto
     76 
     77 # Build for the host.
     78 include $(CLEAR_VARS)
     79 LOCAL_MODULE := update_metadata-protos
     80 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
     81 LOCAL_IS_HOST_MODULE := true
     82 generated_sources_dir := $(call local-generated-sources-dir)
     83 LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system
     84 LOCAL_SRC_FILES := $(ue_update_metadata_protos_src_files)
     85 include $(BUILD_HOST_STATIC_LIBRARY)
     86 
     87 # Build for the target.
     88 include $(CLEAR_VARS)
     89 LOCAL_MODULE := update_metadata-protos
     90 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
     91 generated_sources_dir := $(call local-generated-sources-dir)
     92 LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system
     93 LOCAL_SRC_FILES := $(ue_update_metadata_protos_src_files)
     94 include $(BUILD_STATIC_LIBRARY)
     95 
     96 # libpayload_consumer (type: static_library)
     97 # ========================================================
     98 # The payload application component and common dependencies.
     99 ue_libpayload_consumer_exported_static_libraries := \
    100     update_metadata-protos \
    101     libxz \
    102     libbz \
    103     libbspatch \
    104     $(ue_update_metadata_protos_exported_static_libraries)
    105 ue_libpayload_consumer_exported_shared_libraries := \
    106     libcrypto \
    107     $(ue_update_metadata_protos_exported_shared_libraries)
    108 
    109 ue_libpayload_consumer_src_files := \
    110     common/action_processor.cc \
    111     common/boot_control_stub.cc \
    112     common/clock.cc \
    113     common/constants.cc \
    114     common/cpu_limiter.cc \
    115     common/error_code_utils.cc \
    116     common/file_fetcher.cc \
    117     common/hash_calculator.cc \
    118     common/http_common.cc \
    119     common/http_fetcher.cc \
    120     common/hwid_override.cc \
    121     common/multi_range_http_fetcher.cc \
    122     common/platform_constants_android.cc \
    123     common/prefs.cc \
    124     common/subprocess.cc \
    125     common/terminator.cc \
    126     common/utils.cc \
    127     payload_consumer/bzip_extent_writer.cc \
    128     payload_consumer/delta_performer.cc \
    129     payload_consumer/download_action.cc \
    130     payload_consumer/extent_writer.cc \
    131     payload_consumer/file_descriptor.cc \
    132     payload_consumer/file_writer.cc \
    133     payload_consumer/filesystem_verifier_action.cc \
    134     payload_consumer/install_plan.cc \
    135     payload_consumer/payload_constants.cc \
    136     payload_consumer/payload_verifier.cc \
    137     payload_consumer/postinstall_runner_action.cc \
    138     payload_consumer/xz_extent_writer.cc
    139 
    140 ifeq ($(HOST_OS),linux)
    141 # Build for the host.
    142 include $(CLEAR_VARS)
    143 LOCAL_MODULE := libpayload_consumer
    144 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    145 LOCAL_CPP_EXTENSION := .cc
    146 LOCAL_CLANG := true
    147 LOCAL_CFLAGS := $(ue_common_cflags)
    148 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    149 LOCAL_LDFLAGS := $(ue_common_ldflags)
    150 LOCAL_C_INCLUDES := \
    151     $(ue_common_c_includes)
    152 LOCAL_STATIC_LIBRARIES := \
    153     update_metadata-protos \
    154     $(ue_common_static_libraries) \
    155     $(ue_libpayload_consumer_exported_static_libraries) \
    156     $(ue_update_metadata_protos_exported_static_libraries)
    157 LOCAL_SHARED_LIBRARIES := \
    158     $(ue_common_shared_libraries) \
    159     $(ue_libpayload_consumer_exported_shared_libraries) \
    160     $(ue_update_metadata_protos_exported_shared_libraries)
    161 LOCAL_SRC_FILES := $(ue_libpayload_consumer_src_files)
    162 include $(BUILD_HOST_STATIC_LIBRARY)
    163 endif  # HOST_OS == linux
    164 
    165 # Build for the target.
    166 include $(CLEAR_VARS)
    167 LOCAL_MODULE := libpayload_consumer
    168 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    169 LOCAL_CPP_EXTENSION := .cc
    170 LOCAL_CLANG := true
    171 LOCAL_CFLAGS := $(ue_common_cflags)
    172 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    173 LOCAL_LDFLAGS := $(ue_common_ldflags)
    174 LOCAL_C_INCLUDES := \
    175     $(ue_common_c_includes)
    176 LOCAL_STATIC_LIBRARIES := \
    177     update_metadata-protos \
    178     $(ue_common_static_libraries) \
    179     $(ue_libpayload_consumer_exported_static_libraries:-host=) \
    180     $(ue_update_metadata_protos_exported_static_libraries)
    181 LOCAL_SHARED_LIBRARIES := \
    182     $(ue_common_shared_libraries) \
    183     $(ue_libpayload_consumer_exported_shared_libraries:-host=) \
    184     $(ue_update_metadata_protos_exported_shared_libraries)
    185 LOCAL_SRC_FILES := $(ue_libpayload_consumer_src_files)
    186 include $(BUILD_STATIC_LIBRARY)
    187 
    188 # libupdate_engine_boot_control (type: static_library)
    189 # ========================================================
    190 # A BootControl class implementation using Android's HIDL boot_control HAL.
    191 ue_libupdate_engine_boot_control_exported_static_libraries := \
    192     update_metadata-protos \
    193     $(ue_update_metadata_protos_exported_static_libraries)
    194 
    195 ue_libupdate_engine_boot_control_exported_shared_libraries := \
    196     libhwbinder \
    197     libhidlbase \
    198     libutils \
    199     android.hardware.boot@1.0 \
    200     $(ue_update_metadata_protos_exported_shared_libraries)
    201 
    202 include $(CLEAR_VARS)
    203 LOCAL_MODULE := libupdate_engine_boot_control
    204 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    205 LOCAL_CPP_EXTENSION := .cc
    206 LOCAL_CLANG := true
    207 LOCAL_CFLAGS := $(ue_common_cflags)
    208 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    209 LOCAL_LDFLAGS := $(ue_common_ldflags)
    210 LOCAL_C_INCLUDES := \
    211     $(ue_common_c_includes) \
    212     bootable/recovery
    213 LOCAL_STATIC_LIBRARIES := \
    214     $(ue_common_static_libraries) \
    215     $(ue_libupdate_engine_boot_control_exported_static_libraries)
    216 LOCAL_SHARED_LIBRARIES := \
    217     $(ue_common_shared_libraries) \
    218     $(ue_libupdate_engine_boot_control_exported_shared_libraries)
    219 LOCAL_SRC_FILES := \
    220     boot_control_android.cc
    221 include $(BUILD_STATIC_LIBRARY)
    222 
    223 ifeq ($(local_use_omaha),1)
    224 
    225 # libupdate_engine (type: static_library)
    226 # ========================================================
    227 # The main daemon static_library with all the code used to check for updates
    228 # with Omaha and expose a DBus daemon.
    229 ue_libupdate_engine_exported_c_includes := \
    230     external/cros/system_api/dbus
    231 ue_libupdate_engine_exported_static_libraries := \
    232     libpayload_consumer \
    233     update_metadata-protos \
    234     libbz \
    235     libfs_mgr \
    236     libbase \
    237     liblog \
    238     $(ue_libpayload_consumer_exported_static_libraries) \
    239     $(ue_update_metadata_protos_exported_static_libraries) \
    240     libupdate_engine_boot_control \
    241     $(ue_libupdate_engine_boot_control_exported_static_libraries)
    242 ue_libupdate_engine_exported_shared_libraries := \
    243     libmetrics \
    244     libexpat \
    245     libbrillo-policy \
    246     libcurl \
    247     libcutils \
    248     libssl \
    249     $(ue_libpayload_consumer_exported_shared_libraries) \
    250     $(ue_update_metadata_protos_exported_shared_libraries) \
    251     $(ue_libupdate_engine_boot_control_exported_shared_libraries)
    252 ifeq ($(local_use_binder),1)
    253 ue_libupdate_engine_exported_shared_libraries += \
    254     libbinder \
    255     libbinderwrapper \
    256     libbrillo-binder \
    257     libutils
    258 endif  # local_use_binder == 1
    259 
    260 include $(CLEAR_VARS)
    261 LOCAL_MODULE := libupdate_engine
    262 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    263 LOCAL_CPP_EXTENSION := .cc
    264 LOCAL_CLANG := true
    265 LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libupdate_engine_exported_c_includes)
    266 LOCAL_CFLAGS := $(ue_common_cflags)
    267 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    268 LOCAL_LDFLAGS := $(ue_common_ldflags)
    269 LOCAL_C_INCLUDES := \
    270     $(ue_common_c_includes) \
    271     $(ue_libupdate_engine_exported_c_includes) \
    272     bootable/recovery
    273 LOCAL_STATIC_LIBRARIES := \
    274     libpayload_consumer \
    275     update_metadata-protos \
    276     $(ue_common_static_libraries) \
    277     $(ue_libupdate_engine_exported_static_libraries:-host=) \
    278     $(ue_libpayload_consumer_exported_static_libraries:-host=) \
    279     $(ue_update_metadata_protos_exported_static_libraries)
    280 LOCAL_SHARED_LIBRARIES := \
    281     $(ue_common_shared_libraries) \
    282     $(ue_libupdate_engine_exported_shared_libraries:-host=) \
    283     $(ue_libpayload_consumer_exported_shared_libraries:-host=) \
    284     $(ue_update_metadata_protos_exported_shared_libraries)
    285 LOCAL_SRC_FILES := \
    286     certificate_checker.cc \
    287     common_service.cc \
    288     connection_manager_android.cc \
    289     connection_utils.cc \
    290     daemon.cc \
    291     hardware_android.cc \
    292     image_properties_android.cc \
    293     libcurl_http_fetcher.cc \
    294     metrics.cc \
    295     metrics_utils.cc \
    296     omaha_request_action.cc \
    297     omaha_request_params.cc \
    298     omaha_response_handler_action.cc \
    299     omaha_utils.cc \
    300     p2p_manager.cc \
    301     payload_state.cc \
    302     power_manager_android.cc \
    303     proxy_resolver.cc \
    304     real_system_state.cc \
    305     update_attempter.cc \
    306     update_manager/boxed_value.cc \
    307     update_manager/chromeos_policy.cc \
    308     update_manager/default_policy.cc \
    309     update_manager/evaluation_context.cc \
    310     update_manager/policy.cc \
    311     update_manager/real_config_provider.cc \
    312     update_manager/real_device_policy_provider.cc \
    313     update_manager/real_random_provider.cc \
    314     update_manager/real_system_provider.cc \
    315     update_manager/real_time_provider.cc \
    316     update_manager/real_updater_provider.cc \
    317     update_manager/state_factory.cc \
    318     update_manager/update_manager.cc \
    319     update_status_utils.cc \
    320     utils_android.cc
    321 ifeq ($(local_use_binder),1)
    322 LOCAL_AIDL_INCLUDES += $(LOCAL_PATH)/binder_bindings
    323 LOCAL_SRC_FILES += \
    324     binder_bindings/android/brillo/IUpdateEngine.aidl \
    325     binder_bindings/android/brillo/IUpdateEngineStatusCallback.aidl \
    326     binder_service_brillo.cc \
    327     parcelable_update_engine_status.cc
    328 endif  # local_use_binder == 1
    329 ifeq ($(local_use_libcros),1)
    330 LOCAL_SRC_FILES += \
    331     chrome_browser_proxy_resolver.cc
    332 endif  # local_use_libcros == 1
    333 include $(BUILD_STATIC_LIBRARY)
    334 
    335 else  # local_use_omaha == 1
    336 
    337 ifneq ($(local_use_binder),1)
    338 $(error USE_BINDER is disabled but is required in non-Brillo devices.)
    339 endif  # local_use_binder == 1
    340 
    341 # libupdate_engine_android (type: static_library)
    342 # ========================================================
    343 # The main daemon static_library used in Android (non-Brillo). This only has a
    344 # loop to apply payloads provided by the upper layer via a Binder interface.
    345 ue_libupdate_engine_android_exported_static_libraries := \
    346     libpayload_consumer \
    347     libfs_mgr \
    348     libbase \
    349     liblog \
    350     $(ue_libpayload_consumer_exported_static_libraries) \
    351     libupdate_engine_boot_control \
    352     $(ue_libupdate_engine_boot_control_exported_static_libraries)
    353 ue_libupdate_engine_android_exported_shared_libraries := \
    354     $(ue_libpayload_consumer_exported_shared_libraries) \
    355     $(ue_libupdate_engine_boot_control_exported_shared_libraries) \
    356     libandroid_net \
    357     libbinder \
    358     libbinderwrapper \
    359     libbrillo-binder \
    360     libcutils \
    361     libcurl \
    362     libssl \
    363     libutils
    364 
    365 include $(CLEAR_VARS)
    366 LOCAL_MODULE := libupdate_engine_android
    367 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    368 LOCAL_CPP_EXTENSION := .cc
    369 LOCAL_CLANG := true
    370 LOCAL_CFLAGS := $(ue_common_cflags)
    371 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    372 LOCAL_LDFLAGS := $(ue_common_ldflags)
    373 LOCAL_C_INCLUDES := \
    374     $(ue_common_c_includes) \
    375     bootable/recovery
    376 #TODO(deymo): Remove external/cros/system_api/dbus once the strings are moved
    377 # out of the DBus interface.
    378 LOCAL_C_INCLUDES += \
    379     external/cros/system_api/dbus
    380 LOCAL_STATIC_LIBRARIES := \
    381     $(ue_common_static_libraries) \
    382     $(ue_libupdate_engine_android_exported_static_libraries:-host=)
    383 LOCAL_SHARED_LIBRARIES += \
    384     $(ue_common_shared_libraries) \
    385     $(ue_libupdate_engine_android_exported_shared_libraries:-host=)
    386 LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings
    387 LOCAL_SRC_FILES += \
    388     binder_bindings/android/os/IUpdateEngine.aidl \
    389     binder_bindings/android/os/IUpdateEngineCallback.aidl \
    390     binder_service_android.cc \
    391     certificate_checker.cc \
    392     daemon.cc \
    393     daemon_state_android.cc \
    394     hardware_android.cc \
    395     libcurl_http_fetcher.cc \
    396     network_selector_android.cc \
    397     proxy_resolver.cc \
    398     update_attempter_android.cc \
    399     update_status_utils.cc \
    400     utils_android.cc
    401 include $(BUILD_STATIC_LIBRARY)
    402 
    403 endif  # local_use_omaha == 1
    404 
    405 # update_engine (type: executable)
    406 # ========================================================
    407 # update_engine daemon.
    408 include $(CLEAR_VARS)
    409 LOCAL_MODULE := update_engine
    410 LOCAL_MODULE_CLASS := EXECUTABLES
    411 LOCAL_REQUIRED_MODULES := \
    412     cacerts_google
    413 LOCAL_CPP_EXTENSION := .cc
    414 LOCAL_CLANG := true
    415 LOCAL_CFLAGS := $(ue_common_cflags)
    416 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    417 LOCAL_LDFLAGS := $(ue_common_ldflags)
    418 LOCAL_C_INCLUDES := \
    419     $(ue_common_c_includes)
    420 LOCAL_SHARED_LIBRARIES := \
    421     $(ue_common_shared_libraries)
    422 LOCAL_STATIC_LIBRARIES := \
    423     $(ue_common_static_libraries)
    424 LOCAL_SRC_FILES := \
    425     main.cc
    426 
    427 ifeq ($(local_use_omaha),1)
    428 LOCAL_C_INCLUDES += \
    429     $(ue_libupdate_engine_exported_c_includes)
    430 LOCAL_STATIC_LIBRARIES += \
    431     libupdate_engine \
    432     $(ue_libupdate_engine_exported_static_libraries:-host=)
    433 LOCAL_SHARED_LIBRARIES += \
    434     $(ue_libupdate_engine_exported_shared_libraries:-host=)
    435 else  # local_use_omaha == 1
    436 LOCAL_STATIC_LIBRARIES += \
    437     libupdate_engine_android \
    438     $(ue_libupdate_engine_android_exported_static_libraries:-host=)
    439 LOCAL_SHARED_LIBRARIES += \
    440     $(ue_libupdate_engine_android_exported_shared_libraries:-host=)
    441 endif  # local_use_omaha == 1
    442 
    443 LOCAL_INIT_RC := update_engine.rc
    444 include $(BUILD_EXECUTABLE)
    445 
    446 # update_engine_sideload (type: executable)
    447 # ========================================================
    448 # A static binary equivalent to update_engine daemon that installs an update
    449 # from a local file directly instead of running in the background.
    450 include $(CLEAR_VARS)
    451 LOCAL_MODULE := update_engine_sideload
    452 LOCAL_FORCE_STATIC_EXECUTABLE := true
    453 LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
    454 LOCAL_MODULE_CLASS := EXECUTABLES
    455 LOCAL_CPP_EXTENSION := .cc
    456 LOCAL_CLANG := true
    457 LOCAL_CFLAGS := \
    458     $(ue_common_cflags) \
    459     -D_UE_SIDELOAD
    460 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    461 LOCAL_LDFLAGS := $(ue_common_ldflags)
    462 LOCAL_C_INCLUDES := \
    463     $(ue_common_c_includes) \
    464     bootable/recovery
    465 #TODO(deymo): Remove external/cros/system_api/dbus once the strings are moved
    466 # out of the DBus interface.
    467 LOCAL_C_INCLUDES += \
    468     external/cros/system_api/dbus
    469 LOCAL_SRC_FILES := \
    470     boot_control_recovery.cc \
    471     hardware_android.cc \
    472     network_selector_stub.cc \
    473     proxy_resolver.cc \
    474     sideload_main.cc \
    475     update_attempter_android.cc \
    476     update_status_utils.cc \
    477     utils_android.cc
    478 LOCAL_STATIC_LIBRARIES := \
    479     libfs_mgr \
    480     libbase \
    481     liblog \
    482     libpayload_consumer \
    483     update_metadata-protos \
    484     $(ue_common_static_libraries) \
    485     $(ue_libpayload_consumer_exported_static_libraries:-host=) \
    486     $(ue_update_metadata_protos_exported_static_libraries)
    487 # We add the static versions of the shared libraries since we are forcing this
    488 # binary to be a static binary, so we also need to include all the static
    489 # library dependencies of these static libraries.
    490 LOCAL_STATIC_LIBRARIES += \
    491     $(ue_common_shared_libraries) \
    492     libcutils \
    493     liblog \
    494     $(ue_libpayload_consumer_exported_shared_libraries:-host=) \
    495     $(ue_update_metadata_protos_exported_shared_libraries) \
    496     libevent \
    497     libmodpb64 \
    498     libgtest_prod
    499 
    500 ifeq ($(strip $(PRODUCT_STATIC_BOOT_CONTROL_HAL)),)
    501 # No static boot_control HAL defined, so no sideload support. We use a fake
    502 # boot_control HAL to allow compiling update_engine_sideload for test purposes.
    503 ifeq ($(strip $(AB_OTA_UPDATER)),true)
    504 $(warning No PRODUCT_STATIC_BOOT_CONTROL_HAL configured but AB_OTA_UPDATER is \
    505 true, no update sideload support.)
    506 endif  # AB_OTA_UPDATER == true
    507 LOCAL_SRC_FILES += \
    508     boot_control_recovery_stub.cc
    509 else  # PRODUCT_STATIC_BOOT_CONTROL_HAL != ""
    510 LOCAL_STATIC_LIBRARIES += \
    511     $(PRODUCT_STATIC_BOOT_CONTROL_HAL)
    512 endif  # PRODUCT_STATIC_BOOT_CONTROL_HAL != ""
    513 
    514 include $(BUILD_EXECUTABLE)
    515 
    516 # libupdate_engine_client (type: shared_library)
    517 # ========================================================
    518 include $(CLEAR_VARS)
    519 LOCAL_MODULE := libupdate_engine_client
    520 LOCAL_CFLAGS := \
    521     -Wall \
    522     -Werror \
    523     -Wno-unused-parameter \
    524     -DUSE_BINDER=$(local_use_binder)
    525 LOCAL_CLANG := true
    526 LOCAL_CPP_EXTENSION := .cc
    527 # TODO(deymo): Remove "external/cros/system_api/dbus" when dbus is not used.
    528 LOCAL_C_INCLUDES := \
    529     $(LOCAL_PATH)/client_library/include \
    530     external/cros/system_api/dbus \
    531     system
    532 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/client_library/include
    533 LOCAL_SHARED_LIBRARIES := \
    534     libchrome \
    535     libbrillo
    536 LOCAL_SRC_FILES := \
    537     client_library/client.cc \
    538     update_status_utils.cc
    539 
    540 # We only support binder IPC mechanism in Android.
    541 ifeq ($(local_use_binder),1)
    542 LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings
    543 LOCAL_SHARED_LIBRARIES += \
    544     libbinder \
    545     libbrillo-binder \
    546     libutils
    547 LOCAL_SRC_FILES += \
    548     binder_bindings/android/brillo/IUpdateEngine.aidl \
    549     binder_bindings/android/brillo/IUpdateEngineStatusCallback.aidl \
    550     client_library/client_binder.cc \
    551     parcelable_update_engine_status.cc
    552 endif  # local_use_binder == 1
    553 
    554 include $(BUILD_SHARED_LIBRARY)
    555 
    556 # update_engine_client (type: executable)
    557 # ========================================================
    558 # update_engine console client.
    559 include $(CLEAR_VARS)
    560 LOCAL_MODULE := update_engine_client
    561 LOCAL_MODULE_CLASS := EXECUTABLES
    562 LOCAL_CPP_EXTENSION := .cc
    563 LOCAL_CLANG := true
    564 LOCAL_CFLAGS := $(ue_common_cflags)
    565 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    566 LOCAL_LDFLAGS := $(ue_common_ldflags)
    567 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    568 LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries)
    569 LOCAL_STATIC_LIBRARIES := $(ue_common_static_libraries)
    570 ifeq ($(local_use_omaha),1)
    571 LOCAL_SHARED_LIBRARIES += \
    572     libupdate_engine_client
    573 LOCAL_SRC_FILES := \
    574     update_engine_client.cc \
    575     common/error_code_utils.cc \
    576     omaha_utils.cc
    577 else  # local_use_omaha == 1
    578 #TODO(deymo): Remove external/cros/system_api/dbus once the strings are moved
    579 # out of the DBus interface.
    580 LOCAL_C_INCLUDES += \
    581     external/cros/system_api/dbus
    582 LOCAL_SHARED_LIBRARIES += \
    583     libbinder \
    584     libbinderwrapper \
    585     libbrillo-binder \
    586     libutils
    587 LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings
    588 LOCAL_SRC_FILES := \
    589     binder_bindings/android/os/IUpdateEngine.aidl \
    590     binder_bindings/android/os/IUpdateEngineCallback.aidl \
    591     common/error_code_utils.cc \
    592     update_engine_client_android.cc \
    593     update_status_utils.cc
    594 endif  # local_use_omaha == 1
    595 include $(BUILD_EXECUTABLE)
    596 
    597 # libpayload_generator (type: static_library)
    598 # ========================================================
    599 # server-side code. This is used for delta_generator and unittests but not
    600 # for any client code.
    601 ue_libpayload_generator_exported_static_libraries := \
    602     libpayload_consumer \
    603     update_metadata-protos \
    604     liblzma \
    605     $(ue_libpayload_consumer_exported_static_libraries) \
    606     $(ue_update_metadata_protos_exported_static_libraries)
    607 ue_libpayload_generator_exported_shared_libraries := \
    608     libext2fs \
    609     $(ue_libpayload_consumer_exported_shared_libraries) \
    610     $(ue_update_metadata_protos_exported_shared_libraries)
    611 
    612 ue_libpayload_generator_src_files := \
    613     payload_generator/ab_generator.cc \
    614     payload_generator/annotated_operation.cc \
    615     payload_generator/blob_file_writer.cc \
    616     payload_generator/block_mapping.cc \
    617     payload_generator/bzip.cc \
    618     payload_generator/cycle_breaker.cc \
    619     payload_generator/delta_diff_generator.cc \
    620     payload_generator/delta_diff_utils.cc \
    621     payload_generator/ext2_filesystem.cc \
    622     payload_generator/extent_ranges.cc \
    623     payload_generator/extent_utils.cc \
    624     payload_generator/full_update_generator.cc \
    625     payload_generator/graph_types.cc \
    626     payload_generator/graph_utils.cc \
    627     payload_generator/inplace_generator.cc \
    628     payload_generator/mapfile_filesystem.cc \
    629     payload_generator/payload_file.cc \
    630     payload_generator/payload_generation_config.cc \
    631     payload_generator/payload_signer.cc \
    632     payload_generator/raw_filesystem.cc \
    633     payload_generator/tarjan.cc \
    634     payload_generator/topological_sort.cc \
    635     payload_generator/xz_android.cc
    636 
    637 ifeq ($(HOST_OS),linux)
    638 # Build for the host.
    639 include $(CLEAR_VARS)
    640 LOCAL_MODULE := libpayload_generator
    641 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    642 LOCAL_CPP_EXTENSION := .cc
    643 LOCAL_CLANG := true
    644 LOCAL_CFLAGS := $(ue_common_cflags)
    645 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    646 LOCAL_LDFLAGS := $(ue_common_ldflags)
    647 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    648 LOCAL_STATIC_LIBRARIES := \
    649     libpayload_consumer \
    650     update_metadata-protos \
    651     liblzma \
    652     $(ue_common_static_libraries) \
    653     $(ue_libpayload_consumer_exported_static_libraries) \
    654     $(ue_update_metadata_protos_exported_static_libraries)
    655 LOCAL_SHARED_LIBRARIES := \
    656     $(ue_common_shared_libraries) \
    657     $(ue_libpayload_generator_exported_shared_libraries) \
    658     $(ue_libpayload_consumer_exported_shared_libraries) \
    659     $(ue_update_metadata_protos_exported_shared_libraries)
    660 LOCAL_SRC_FILES := $(ue_libpayload_generator_src_files)
    661 include $(BUILD_HOST_STATIC_LIBRARY)
    662 endif  # HOST_OS == linux
    663 
    664 # Build for the target.
    665 include $(CLEAR_VARS)
    666 LOCAL_MODULE := libpayload_generator
    667 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
    668 LOCAL_CPP_EXTENSION := .cc
    669 LOCAL_CLANG := true
    670 LOCAL_CFLAGS := $(ue_common_cflags)
    671 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    672 LOCAL_LDFLAGS := $(ue_common_ldflags)
    673 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    674 LOCAL_STATIC_LIBRARIES := \
    675     libpayload_consumer \
    676     update_metadata-protos \
    677     liblzma \
    678     $(ue_common_static_libraries) \
    679     $(ue_libpayload_consumer_exported_static_libraries:-host=) \
    680     $(ue_update_metadata_protos_exported_static_libraries)
    681 LOCAL_SHARED_LIBRARIES := \
    682     $(ue_common_shared_libraries) \
    683     $(ue_libpayload_generator_exported_shared_libraries:-host=) \
    684     $(ue_libpayload_consumer_exported_shared_libraries:-host=) \
    685     $(ue_update_metadata_protos_exported_shared_libraries)
    686 LOCAL_SRC_FILES := $(ue_libpayload_generator_src_files)
    687 include $(BUILD_STATIC_LIBRARY)
    688 
    689 # delta_generator (type: executable)
    690 # ========================================================
    691 # server-side delta generator.
    692 ue_delta_generator_src_files := \
    693     payload_generator/generate_delta_main.cc
    694 
    695 ifeq ($(HOST_OS),linux)
    696 # Build for the host.
    697 include $(CLEAR_VARS)
    698 LOCAL_MODULE := delta_generator
    699 LOCAL_REQUIRED_MODULES := \
    700     bsdiff \
    701     imgdiff
    702 LOCAL_MODULE_CLASS := EXECUTABLES
    703 LOCAL_CPP_EXTENSION := .cc
    704 LOCAL_CLANG := true
    705 LOCAL_CFLAGS := $(ue_common_cflags)
    706 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    707 LOCAL_LDFLAGS := $(ue_common_ldflags)
    708 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    709 LOCAL_STATIC_LIBRARIES := \
    710     libpayload_consumer \
    711     libpayload_generator \
    712     $(ue_common_static_libraries) \
    713     $(ue_libpayload_consumer_exported_static_libraries) \
    714     $(ue_libpayload_generator_exported_static_libraries)
    715 LOCAL_SHARED_LIBRARIES := \
    716     $(ue_common_shared_libraries) \
    717     $(ue_libpayload_consumer_exported_shared_libraries) \
    718     $(ue_libpayload_generator_exported_shared_libraries)
    719 LOCAL_SRC_FILES := $(ue_delta_generator_src_files)
    720 include $(BUILD_HOST_EXECUTABLE)
    721 endif  # HOST_OS == linux
    722 
    723 # Build for the target.
    724 include $(CLEAR_VARS)
    725 LOCAL_MODULE := ue_unittest_delta_generator
    726 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests
    727 LOCAL_MODULE_STEM := delta_generator
    728 LOCAL_MODULE_CLASS := EXECUTABLES
    729 LOCAL_CPP_EXTENSION := .cc
    730 LOCAL_CLANG := true
    731 LOCAL_CFLAGS := $(ue_common_cflags)
    732 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    733 LOCAL_LDFLAGS := $(ue_common_ldflags)
    734 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    735 LOCAL_STATIC_LIBRARIES := \
    736     libpayload_consumer \
    737     libpayload_generator \
    738     $(ue_common_static_libraries) \
    739     $(ue_libpayload_consumer_exported_static_libraries:-host=) \
    740     $(ue_libpayload_generator_exported_static_libraries:-host=)
    741 LOCAL_SHARED_LIBRARIES := \
    742     $(ue_common_shared_libraries) \
    743     $(ue_libpayload_consumer_exported_shared_libraries:-host=) \
    744     $(ue_libpayload_generator_exported_shared_libraries:-host=)
    745 LOCAL_SRC_FILES := $(ue_delta_generator_src_files)
    746 include $(BUILD_EXECUTABLE)
    747 
    748 # Private and public keys for unittests.
    749 # ========================================================
    750 # Generate a module that installs a prebuilt private key and a module that
    751 # installs a public key generated from the private key.
    752 #
    753 # $(1): The path to the private key in pem format.
    754 define ue-unittest-keys
    755     $(eval include $(CLEAR_VARS)) \
    756     $(eval LOCAL_MODULE := ue_$(1).pem) \
    757     $(eval LOCAL_MODULE_CLASS := ETC) \
    758     $(eval $(ifeq $(BRILLO), 1, LOCAL_MODULE_TAGS := eng)) \
    759     $(eval LOCAL_SRC_FILES := $(1).pem) \
    760     $(eval LOCAL_MODULE_PATH := \
    761         $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests) \
    762     $(eval LOCAL_MODULE_STEM := $(1).pem) \
    763     $(eval include $(BUILD_PREBUILT)) \
    764     \
    765     $(eval include $(CLEAR_VARS)) \
    766     $(eval LOCAL_MODULE := ue_$(1).pub.pem) \
    767     $(eval LOCAL_MODULE_CLASS := ETC) \
    768     $(eval $(ifeq $(BRILLO), 1, LOCAL_MODULE_TAGS := eng)) \
    769     $(eval LOCAL_MODULE_PATH := \
    770         $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests) \
    771     $(eval LOCAL_MODULE_STEM := $(1).pub.pem) \
    772     $(eval include $(BUILD_SYSTEM)/base_rules.mk) \
    773     $(eval $(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(1).pem ; \
    774         openssl rsa -in $$< -pubout -out $$@)
    775 endef
    776 
    777 $(call ue-unittest-keys,unittest_key)
    778 $(call ue-unittest-keys,unittest_key2)
    779 
    780 # Sample images for unittests.
    781 # ========================================================
    782 # Generate a prebuilt module that installs a sample image from the compressed
    783 # sample_images.tar.bz2 file used by the unittests.
    784 #
    785 # $(1): The filename in the sample_images.tar.bz2
    786 define ue-unittest-sample-image
    787     $(eval include $(CLEAR_VARS)) \
    788     $(eval LOCAL_MODULE := ue_unittest_$(1)) \
    789     $(eval LOCAL_MODULE_CLASS := EXECUTABLES) \
    790     $(eval $(ifeq $(BRILLO), 1, LOCAL_MODULE_TAGS := eng)) \
    791     $(eval LOCAL_MODULE_PATH := \
    792         $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests/gen) \
    793     $(eval LOCAL_MODULE_STEM := $(1)) \
    794     $(eval include $(BUILD_SYSTEM)/base_rules.mk) \
    795     $(eval $(LOCAL_BUILT_MODULE) : \
    796         $(LOCAL_PATH)/sample_images/sample_images.tar.bz2 ; \
    797         tar -jxf $$< -C $$(dir $$@) $$(notdir $$@) && touch $$@)
    798 endef
    799 
    800 $(call ue-unittest-sample-image,disk_ext2_1k.img)
    801 $(call ue-unittest-sample-image,disk_ext2_4k.img)
    802 $(call ue-unittest-sample-image,disk_ext2_4k_empty.img)
    803 $(call ue-unittest-sample-image,disk_ext2_unittest.img)
    804 
    805 # Zlib Fingerprint
    806 # ========================================================
    807 include $(CLEAR_VARS)
    808 LOCAL_MODULE := zlib_fingerprint
    809 LOCAL_MODULE_CLASS := ETC
    810 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests
    811 LOCAL_PREBUILT_MODULE_FILE := $(TARGET_OUT_COMMON_GEN)/zlib_fingerprint
    812 include $(BUILD_PREBUILT)
    813 
    814 # update_engine.conf
    815 # ========================================================
    816 include $(CLEAR_VARS)
    817 LOCAL_MODULE := ue_unittest_update_engine.conf
    818 LOCAL_MODULE_CLASS := ETC
    819 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests
    820 LOCAL_MODULE_STEM := update_engine.conf
    821 LOCAL_SRC_FILES := update_engine.conf
    822 include $(BUILD_PREBUILT)
    823 
    824 # test_http_server (type: executable)
    825 # ========================================================
    826 # Test HTTP Server.
    827 include $(CLEAR_VARS)
    828 LOCAL_MODULE := test_http_server
    829 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests
    830 LOCAL_MODULE_CLASS := EXECUTABLES
    831 LOCAL_CPP_EXTENSION := .cc
    832 LOCAL_CLANG := true
    833 LOCAL_CFLAGS := $(ue_common_cflags)
    834 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    835 LOCAL_LDFLAGS := $(ue_common_ldflags)
    836 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    837 LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries)
    838 LOCAL_STATIC_LIBRARIES := $(ue_common_static_libraries)
    839 LOCAL_SRC_FILES := \
    840     common/http_common.cc \
    841     test_http_server.cc
    842 include $(BUILD_EXECUTABLE)
    843 
    844 # bsdiff (type: executable)
    845 # ========================================================
    846 # We need bsdiff in the update_engine_unittests directory, so we build it here.
    847 include $(CLEAR_VARS)
    848 LOCAL_MODULE := ue_unittest_bsdiff
    849 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests
    850 LOCAL_MODULE_STEM := bsdiff
    851 LOCAL_CPP_EXTENSION := .cc
    852 LOCAL_SRC_FILES := ../../external/bsdiff/bsdiff_main.cc
    853 LOCAL_CFLAGS := \
    854     -D_FILE_OFFSET_BITS=64 \
    855     -Wall \
    856     -Werror \
    857     -Wextra \
    858     -Wno-unused-parameter
    859 LOCAL_STATIC_LIBRARIES := \
    860     libbsdiff \
    861     libbz \
    862     libdivsufsort64 \
    863     libdivsufsort
    864 include $(BUILD_EXECUTABLE)
    865 
    866 # test_subprocess (type: executable)
    867 # ========================================================
    868 # Test helper subprocess program.
    869 include $(CLEAR_VARS)
    870 LOCAL_MODULE := test_subprocess
    871 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/update_engine_unittests
    872 LOCAL_MODULE_CLASS := EXECUTABLES
    873 LOCAL_CPP_EXTENSION := .cc
    874 LOCAL_CLANG := true
    875 LOCAL_CFLAGS := $(ue_common_cflags)
    876 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    877 LOCAL_LDFLAGS := $(ue_common_ldflags)
    878 LOCAL_C_INCLUDES := $(ue_common_c_includes)
    879 LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries)
    880 LOCAL_STATIC_LIBRARIES := $(ue_common_static_libraries)
    881 LOCAL_SRC_FILES := test_subprocess.cc
    882 include $(BUILD_EXECUTABLE)
    883 
    884 # update_engine_unittests (type: executable)
    885 # ========================================================
    886 # Main unittest file.
    887 include $(CLEAR_VARS)
    888 LOCAL_MODULE := update_engine_unittests
    889 LOCAL_REQUIRED_MODULES := \
    890     test_http_server \
    891     test_subprocess \
    892     ue_unittest_bsdiff \
    893     ue_unittest_delta_generator \
    894     ue_unittest_disk_ext2_1k.img \
    895     ue_unittest_disk_ext2_4k.img \
    896     ue_unittest_disk_ext2_4k_empty.img \
    897     ue_unittest_disk_ext2_unittest.img \
    898     ue_unittest_key.pem \
    899     ue_unittest_key.pub.pem \
    900     ue_unittest_key2.pem \
    901     ue_unittest_key2.pub.pem \
    902     ue_unittest_update_engine.conf \
    903     zlib_fingerprint
    904 LOCAL_CPP_EXTENSION := .cc
    905 LOCAL_CLANG := true
    906 LOCAL_CFLAGS := $(ue_common_cflags)
    907 LOCAL_CPPFLAGS := $(ue_common_cppflags)
    908 LOCAL_LDFLAGS := $(ue_common_ldflags)
    909 LOCAL_C_INCLUDES := \
    910     $(ue_common_c_includes) \
    911     $(ue_libupdate_engine_exported_c_includes)
    912 LOCAL_STATIC_LIBRARIES := \
    913     libpayload_generator \
    914     libbrillo-test-helpers \
    915     libgmock \
    916     libchrome_test_helpers \
    917     $(ue_common_static_libraries) \
    918     $(ue_libpayload_generator_exported_static_libraries:-host=)
    919 LOCAL_SHARED_LIBRARIES := \
    920     $(ue_common_shared_libraries) \
    921     $(ue_libpayload_generator_exported_shared_libraries:-host=)
    922 LOCAL_SRC_FILES := \
    923     certificate_checker_unittest.cc \
    924     common/action_pipe_unittest.cc \
    925     common/action_processor_unittest.cc \
    926     common/action_unittest.cc \
    927     common/cpu_limiter_unittest.cc \
    928     common/fake_prefs.cc \
    929     common/file_fetcher_unittest.cc \
    930     common/hash_calculator_unittest.cc \
    931     common/http_fetcher_unittest.cc \
    932     common/hwid_override_unittest.cc \
    933     common/mock_http_fetcher.cc \
    934     common/prefs_unittest.cc \
    935     common/subprocess_unittest.cc \
    936     common/terminator_unittest.cc \
    937     common/test_utils.cc \
    938     common/utils_unittest.cc \
    939     payload_consumer/bzip_extent_writer_unittest.cc \
    940     payload_consumer/delta_performer_integration_test.cc \
    941     payload_consumer/delta_performer_unittest.cc \
    942     payload_consumer/extent_writer_unittest.cc \
    943     payload_consumer/file_writer_unittest.cc \
    944     payload_consumer/filesystem_verifier_action_unittest.cc \
    945     payload_consumer/postinstall_runner_action_unittest.cc \
    946     payload_consumer/xz_extent_writer_unittest.cc \
    947     payload_generator/ab_generator_unittest.cc \
    948     payload_generator/blob_file_writer_unittest.cc \
    949     payload_generator/block_mapping_unittest.cc \
    950     payload_generator/cycle_breaker_unittest.cc \
    951     payload_generator/delta_diff_utils_unittest.cc \
    952     payload_generator/ext2_filesystem_unittest.cc \
    953     payload_generator/extent_ranges_unittest.cc \
    954     payload_generator/extent_utils_unittest.cc \
    955     payload_generator/fake_filesystem.cc \
    956     payload_generator/full_update_generator_unittest.cc \
    957     payload_generator/graph_utils_unittest.cc \
    958     payload_generator/inplace_generator_unittest.cc \
    959     payload_generator/mapfile_filesystem_unittest.cc \
    960     payload_generator/payload_file_unittest.cc \
    961     payload_generator/payload_generation_config_unittest.cc \
    962     payload_generator/payload_signer_unittest.cc \
    963     payload_generator/tarjan_unittest.cc \
    964     payload_generator/topological_sort_unittest.cc \
    965     payload_generator/zip_unittest.cc \
    966     proxy_resolver_unittest.cc \
    967     testrunner.cc
    968 ifeq ($(local_use_omaha),1)
    969 LOCAL_C_INCLUDES += \
    970     $(ue_libupdate_engine_exported_c_includes)
    971 LOCAL_STATIC_LIBRARIES += \
    972     libupdate_engine \
    973     $(ue_libupdate_engine_exported_static_libraries:-host=)
    974 LOCAL_SHARED_LIBRARIES += \
    975     $(ue_libupdate_engine_exported_shared_libraries:-host=)
    976 LOCAL_SRC_FILES += \
    977     common_service_unittest.cc \
    978     fake_system_state.cc \
    979     image_properties_android_unittest.cc \
    980     metrics_utils_unittest.cc \
    981     omaha_request_action_unittest.cc \
    982     omaha_request_params_unittest.cc \
    983     omaha_response_handler_action_unittest.cc \
    984     omaha_utils_unittest.cc \
    985     p2p_manager_unittest.cc \
    986     payload_consumer/download_action_unittest.cc \
    987     payload_state_unittest.cc \
    988     update_attempter_unittest.cc \
    989     update_manager/boxed_value_unittest.cc \
    990     update_manager/chromeos_policy_unittest.cc \
    991     update_manager/evaluation_context_unittest.cc \
    992     update_manager/generic_variables_unittest.cc \
    993     update_manager/prng_unittest.cc \
    994     update_manager/real_device_policy_provider_unittest.cc \
    995     update_manager/real_random_provider_unittest.cc \
    996     update_manager/real_system_provider_unittest.cc \
    997     update_manager/real_time_provider_unittest.cc \
    998     update_manager/real_updater_provider_unittest.cc \
    999     update_manager/umtest_utils.cc \
   1000     update_manager/update_manager_unittest.cc \
   1001     update_manager/variable_unittest.cc
   1002 else  # local_use_omaha == 1
   1003 LOCAL_STATIC_LIBRARIES += \
   1004     libupdate_engine_android \
   1005     $(ue_libupdate_engine_android_exported_static_libraries:-host=)
   1006 LOCAL_SHARED_LIBRARIES += \
   1007     $(ue_libupdate_engine_android_exported_shared_libraries:-host=)
   1008 endif  # local_use_omaha == 1
   1009 ifeq ($(local_use_libcros),1)
   1010 LOCAL_SRC_FILES += \
   1011     chrome_browser_proxy_resolver_unittest.cc
   1012 endif  # local_use_libcros == 1
   1013 include $(BUILD_NATIVE_TEST)
   1014 
   1015 # Update payload signing public key.
   1016 # ========================================================
   1017 ifeq ($(PRODUCT_IOT),true)
   1018 include $(CLEAR_VARS)
   1019 LOCAL_MODULE := brillo-update-payload-key
   1020 LOCAL_MODULE_CLASS := ETC
   1021 LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/update_engine
   1022 LOCAL_MODULE_STEM := update-payload-key.pub.pem
   1023 LOCAL_SRC_FILES := update_payload_key/brillo-update-payload-key.pub.pem
   1024 LOCAL_BUILT_MODULE_STEM := update_payload_key/brillo-update-payload-key.pub.pem
   1025 include $(BUILD_PREBUILT)
   1026 endif  # PRODUCT_IOT
   1027 
   1028 # Brillo update payload generation script
   1029 # ========================================================
   1030 ifeq ($(HOST_OS),linux)
   1031 include $(CLEAR_VARS)
   1032 LOCAL_SRC_FILES := scripts/brillo_update_payload
   1033 LOCAL_MODULE := brillo_update_payload
   1034 LOCAL_MODULE_CLASS := EXECUTABLES
   1035 LOCAL_IS_HOST_MODULE := true
   1036 LOCAL_MODULE_TAGS := optional
   1037 LOCAL_REQUIRED_MODULES := \
   1038     delta_generator \
   1039     shflags
   1040 include $(BUILD_PREBUILT)
   1041 endif  # HOST_OS == linux
   1042