Merge "Convert `asan.options` and `asan_extract` to Android.bp" into main
diff --git a/fs_mgr/libsnapshot/snapshot.cpp b/fs_mgr/libsnapshot/snapshot.cpp
index 4d55315..32f6d89 100644
--- a/fs_mgr/libsnapshot/snapshot.cpp
+++ b/fs_mgr/libsnapshot/snapshot.cpp
@@ -21,6 +21,7 @@
#include <sys/types.h>
#include <sys/unistd.h>
+#include <chrono>
#include <filesystem>
#include <optional>
#include <thread>
@@ -2892,6 +2893,7 @@
auto SnapshotManager::OpenFile(const std::string& file,
int lock_flags) -> std::unique_ptr<LockedFile> {
+ const auto start = std::chrono::system_clock::now();
unique_fd fd(open(file.c_str(), O_RDONLY | O_CLOEXEC | O_NOFOLLOW));
if (fd < 0) {
PLOG(ERROR) << "Open failed: " << file;
@@ -2904,6 +2906,11 @@
// For simplicity, we want to CHECK that lock_mode == LOCK_EX, in some
// calls, so strip extra flags.
int lock_mode = lock_flags & (LOCK_EX | LOCK_SH);
+ const auto end = std::chrono::system_clock::now();
+ const auto duration_ms = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
+ if (duration_ms >= 1000ms) {
+ LOG(INFO) << "Taking lock on " << file << " took " << duration_ms.count() << "ms";
+ }
return std::make_unique<LockedFile>(file, std::move(fd), lock_mode);
}
diff --git a/rootdir/avb/Android.bp b/rootdir/avb/Android.bp
new file mode 100644
index 0000000..a584e3e
--- /dev/null
+++ b/rootdir/avb/Android.bp
@@ -0,0 +1,71 @@
+// Copyright (C) 2024 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.
+
+soong_config_module_type {
+ name: "avb_keys_prebuilt_avb",
+ module_type: "prebuilt_avb",
+ config_namespace: "ANDROID",
+ bool_variables: [
+ "BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT",
+ ],
+ properties: [
+ "ramdisk",
+ "vendor_ramdisk",
+ ],
+}
+
+avb_keys_prebuilt_avb {
+ name: "q-developer-gsi.avbpubkey",
+ src: "q-developer-gsi.avbpubkey",
+ soong_config_variables: {
+ BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT: {
+ ramdisk: false,
+ vendor_ramdisk: true,
+ conditions_default: {
+ ramdisk: true,
+ vendor_ramdisk: false,
+ },
+ },
+ },
+}
+
+avb_keys_prebuilt_avb {
+ name: "r-developer-gsi.avbpubkey",
+ src: "r-developer-gsi.avbpubkey",
+ soong_config_variables: {
+ BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT: {
+ ramdisk: false,
+ vendor_ramdisk: true,
+ conditions_default: {
+ ramdisk: true,
+ vendor_ramdisk: false,
+ },
+ },
+ },
+}
+
+avb_keys_prebuilt_avb {
+ name: "s-developer-gsi.avbpubkey",
+ src: "s-developer-gsi.avbpubkey",
+ soong_config_variables: {
+ BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT: {
+ ramdisk: false,
+ vendor_ramdisk: true,
+ conditions_default: {
+ ramdisk: true,
+ vendor_ramdisk: false,
+ },
+ },
+ },
+}
diff --git a/rootdir/avb/Android.mk b/rootdir/avb/Android.mk
deleted file mode 100644
index 8cf3172..0000000
--- a/rootdir/avb/Android.mk
+++ /dev/null
@@ -1,56 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-ifeq ($(BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT),true) # AVB keys are installed to vendor ramdisk
- ifeq ($(BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT),true) # no dedicated recovery partition
- my_gsi_avb_keys_path := $(TARGET_VENDOR_RAMDISK_OUT)/first_stage_ramdisk/avb
- else # device has a dedicated recovery partition
- my_gsi_avb_keys_path := $(TARGET_VENDOR_RAMDISK_OUT)/avb
- endif
-else
- ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true) # no dedicated recovery partition
- my_gsi_avb_keys_path := $(TARGET_RECOVERY_ROOT_OUT)/first_stage_ramdisk/avb
- else # device has a dedicated recovery partition
- my_gsi_avb_keys_path := $(TARGET_RAMDISK_OUT)/avb
- endif
-endif
-
-#######################################
-# q-developer-gsi.avbpubkey
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := q-developer-gsi.avbpubkey
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-LOCAL_MODULE_PATH := $(my_gsi_avb_keys_path)
-
-include $(BUILD_PREBUILT)
-
-#######################################
-# r-developer-gsi.avbpubkey
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := r-developer-gsi.avbpubkey
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-LOCAL_MODULE_PATH := $(my_gsi_avb_keys_path)
-
-include $(BUILD_PREBUILT)
-
-#######################################
-# s-developer-gsi.avbpubkey
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := s-developer-gsi.avbpubkey
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-LOCAL_MODULE_PATH := $(my_gsi_avb_keys_path)
-
-include $(BUILD_PREBUILT)
-
-my_gsi_avb_keys_path :=