diff --git a/radio/aidl/minradio/libminradio/include/libminradio/sim/Filesystem.h b/radio/aidl/minradio/libminradio/include/libminradio/sim/Filesystem.h
index 489d59b..4e7c5ee 100644
--- a/radio/aidl/minradio/libminradio/include/libminradio/sim/Filesystem.h
+++ b/radio/aidl/minradio/libminradio/include/libminradio/sim/Filesystem.h
@@ -19,6 +19,7 @@
 #include <android-base/thread_annotations.h>
 
 #include <map>
+#include <set>
 #include <span>
 
 namespace android::hardware::radio::minimal::sim {
@@ -38,6 +39,7 @@
   private:
     mutable std::mutex mFilesGuard;
     std::map<Path, std::vector<uint8_t>> mFiles GUARDED_BY(mFilesGuard);
+    std::set<int32_t> mUpdates GUARDED_BY(mFilesGuard);
 
     DISALLOW_COPY_AND_ASSIGN(Filesystem);
 
@@ -53,6 +55,8 @@
     std::optional<std::string> readBch(const Path& path) const;
 
     std::optional<Path> find(uint16_t fileId);
+
+    std::set<int32_t> fetchAndClearUpdates();
 };
 
 namespace paths {
diff --git a/radio/aidl/minradio/libminradio/sim/Filesystem.cpp b/radio/aidl/minradio/libminradio/sim/Filesystem.cpp
index 65c92b1..4be63f4 100644
--- a/radio/aidl/minradio/libminradio/sim/Filesystem.cpp
+++ b/radio/aidl/minradio/libminradio/sim/Filesystem.cpp
@@ -47,11 +47,13 @@
 void Filesystem::write(const Path& path, FileView contents) {
     std::unique_lock lck(mFilesGuard);
     mFiles[path].assign(contents.begin(), contents.end());  // C++23: assign_range
+    mUpdates.insert(path.fileId);
 }
 
 void Filesystem::write(const Path& path, std::string_view contents) {
     std::unique_lock lck(mFilesGuard);
     mFiles[path].assign(contents.begin(), contents.end());  // C++23: assign_range
+    mUpdates.insert(path.fileId);
 }
 
 void Filesystem::write(const Path& path, std::vector<uint8_t>&& contents) {
@@ -84,6 +86,13 @@
     return std::nullopt;
 }
 
+std::set<int32_t> Filesystem::fetchAndClearUpdates() {
+    std::unique_lock lck(mFilesGuard);
+    std::set<int32_t> result;
+    std::swap(result, mUpdates);
+    return result;
+}
+
 std::string Filesystem::Path::toString() const {
     return std::format("{:s}/{:X}", pathId, fileId);
 }
