diff --git a/payload_generator/generate_delta_main.cc b/payload_generator/generate_delta_main.cc
index c3232fb..e6e7c98 100644
--- a/payload_generator/generate_delta_main.cc
+++ b/payload_generator/generate_delta_main.cc
@@ -147,7 +147,8 @@
 
 void SignPayload(const string& in_file,
                  const string& out_file,
-                 const string& signature_file) {
+                 const string& signature_file,
+                 const string& out_metadata_size_file) {
   LOG(INFO) << "Signing payload.";
   LOG_IF(FATAL, in_file.empty())
       << "Must pass --in_file to sign payload.";
@@ -168,6 +169,12 @@
       in_file, signatures, out_file, &final_metadata_size));
   LOG(INFO) << "Done signing payload. Final metadata size = "
             << final_metadata_size;
+  if (!out_metadata_size_file.empty()) {
+    string metadata_size_string = std::to_string(final_metadata_size);
+    CHECK(utils::WriteFile(out_metadata_size_file.c_str(),
+                           metadata_size_string.data(),
+                           metadata_size_string.size()));
+  }
 }
 
 void VerifySignedPayload(const string& in_file,
@@ -258,6 +265,8 @@
   DEFINE_string(out_hash_file, "", "Path to output hash file");
   DEFINE_string(out_metadata_hash_file, "",
                 "Path to output metadata hash file");
+  DEFINE_string(out_metadata_size_file, "",
+                "Path to output metadata size file");
   DEFINE_string(private_key, "", "Path to private key in .pem format");
   DEFINE_string(public_key, "", "Path to public key in .pem format");
   DEFINE_int32(public_key_version, -1,
@@ -346,6 +355,7 @@
   ParseSignatureSizes(FLAGS_signature_size, &signature_sizes);
 
   if (!FLAGS_out_hash_file.empty() || !FLAGS_out_metadata_hash_file.empty()) {
+    CHECK(FLAGS_out_metadata_size_file.empty());
     if (!FLAGS_out_hash_file.empty()) {
       CalculatePayloadHashForSigning(signature_sizes, FLAGS_out_hash_file,
                                      FLAGS_in_file);
@@ -358,7 +368,8 @@
     return 0;
   }
   if (!FLAGS_signature_file.empty()) {
-    SignPayload(FLAGS_in_file, FLAGS_out_file, FLAGS_signature_file);
+    SignPayload(FLAGS_in_file, FLAGS_out_file, FLAGS_signature_file,
+                FLAGS_out_metadata_size_file);
     return 0;
   }
   if (!FLAGS_public_key.empty()) {
@@ -520,7 +531,12 @@
                                  &metadata_size)) {
     return 1;
   }
-
+  if (!FLAGS_out_metadata_size_file.empty()) {
+    string metadata_size_string = std::to_string(metadata_size);
+    CHECK(utils::WriteFile(FLAGS_out_metadata_size_file.c_str(),
+                           metadata_size_string.data(),
+                           metadata_size_string.size()));
+  }
   return 0;
 }
 
