trusty: storage: proxy: FS_READY property setting on vendor only
Bug: 367965796
Test: launch_cvd --noresume --console=true \
--extra_kernel_cmdline='androidboot.selinux=permissive' \
--secure_hals=guest_keymint_trusty_insecure
Change-Id: I4d5ea1762f7cf9edfd8cbc00e2aec13caae965f4
diff --git a/trusty/storage/proxy/Android.bp b/trusty/storage/proxy/Android.bp
index e362b8b..7ef0e6f 100644
--- a/trusty/storage/proxy/Android.bp
+++ b/trusty/storage/proxy/Android.bp
@@ -47,7 +47,12 @@
"libtrustystorageinterface",
"libtrusty",
],
-
+ target: {
+ vendor: {
+ // vendor variant requires this flag
+ cflags: ["-DVENDOR_FS_READY_PROPERTY"],
+ },
+ },
cflags: [
"-Wall",
"-Werror",
diff --git a/trusty/storage/proxy/storage.c b/trusty/storage/proxy/storage.c
index ca39f6a..72c4e93 100644
--- a/trusty/storage/proxy/storage.c
+++ b/trusty/storage/proxy/storage.c
@@ -54,6 +54,8 @@
/* List head for storage mapping, elements added at init, and never removed */
static struct storage_mapping_node* storage_mapping_head;
+#ifdef VENDOR_FS_READY_PROPERTY
+
/*
* Properties set to 1 after we have opened a file under ssdir_name. The backing
* files for both TD and TDP are currently located under /data/vendor/ss and can
@@ -75,16 +77,6 @@
static bool fs_ready_set = false;
static bool fs_ready_rw_set = false;
-static enum sync_state fs_state;
-static enum sync_state fd_state[FD_TBL_SIZE];
-
-static bool alternate_mode;
-
-static struct {
- struct storage_file_read_resp hdr;
- uint8_t data[MAX_READ_SIZE];
-} read_rsp;
-
static bool property_set_helper(const char* prop) {
int rc = property_set(prop, "1");
if (rc == 0) {
@@ -96,6 +88,18 @@
return rc == 0;
}
+#endif // #ifdef VENDOR_FS_READY_PROPERTY
+
+static enum sync_state fs_state;
+static enum sync_state fd_state[FD_TBL_SIZE];
+
+static bool alternate_mode;
+
+static struct {
+ struct storage_file_read_resp hdr;
+ uint8_t data[MAX_READ_SIZE];
+} read_rsp;
+
static uint32_t insert_fd(int open_flags, int fd, struct storage_mapping_node* node) {
uint32_t handle = fd;
@@ -535,6 +539,7 @@
free(path);
path = NULL;
+#ifdef VENDOR_FS_READY_PROPERTY
/* a backing file has been opened, notify any waiting init steps */
if (!fs_ready_set || !fs_ready_rw_set) {
bool is_checkpoint_active = false;
@@ -552,6 +557,7 @@
}
}
}
+#endif // #ifdef VENDOR_FS_READY_PROPERTY
return ipc_respond(msg, &resp, sizeof(resp));