diff --git a/virtualizationservice/src/main.rs b/virtualizationservice/src/main.rs
index 46ddd2e..c9cc029 100644
--- a/virtualizationservice/src/main.rs
+++ b/virtualizationservice/src/main.rs
@@ -20,10 +20,12 @@
 mod gpt;
 mod payload;
 
-use crate::aidl::{VirtualizationService, BINDER_SERVICE_IDENTIFIER};
+use crate::aidl::{VirtualizationService, BINDER_SERVICE_IDENTIFIER, TEMPORARY_DIRECTORY};
 use android_system_virtualizationservice::aidl::android::system::virtualizationservice::IVirtualizationService::BnVirtualizationService;
 use android_system_virtualizationservice::binder::{add_service, BinderFeatures, ProcessState};
+use anyhow::Error;
 use log::{info, Level};
+use std::fs::{remove_dir_all, remove_file, read_dir};
 
 /// The first CID to assign to a guest VM managed by the VirtualizationService. CIDs lower than this
 /// are reserved for the host or other usage.
@@ -39,6 +41,8 @@
         android_logger::Config::default().with_tag(LOG_TAG).with_min_level(Level::Trace),
     );
 
+    clear_temporary_files().expect("Failed to delete old temporary files");
+
     let service = VirtualizationService::init();
     let service = BnVirtualizationService::new_binder(
         service,
@@ -48,3 +52,17 @@
     info!("Registered Binder service, joining threadpool.");
     ProcessState::join_thread_pool();
 }
+
+/// Remove any files under `TEMPORARY_DIRECTORY`.
+fn clear_temporary_files() -> Result<(), Error> {
+    for dir_entry in read_dir(TEMPORARY_DIRECTORY)? {
+        let dir_entry = dir_entry?;
+        let path = dir_entry.path();
+        if dir_entry.file_type()?.is_dir() {
+            remove_dir_all(path)?;
+        } else {
+            remove_file(path)?;
+        }
+    }
+    Ok(())
+}
