Fix METADATA file for all crates.

./crate_tool fix-metadata --all
./crate_tool --managed-repo-path=external/rust/android-crates-io/extra_versions fix-metadata --all

Bug: http://b/339424309
Test: treehugger
Change-Id: Iece0663a4f856bd910efaf82c846adc1035e271a
diff --git a/crates/arbitrary/METADATA b/crates/arbitrary/METADATA
index 8621082..836167c 100644
--- a/crates/arbitrary/METADATA
+++ b/crates/arbitrary/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/arbitrary
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "arbitrary"
 description: "The trait for generating structured data from unstructured data"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/arbitrary"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/arbitrary/arbitrary-1.2.3.crate"
-  }
   version: "1.2.3"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 2
     day: 1
   }
+  homepage: "https://crates.io/crates/arbitrary"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/arbitrary/arbitrary-1.2.3.crate"
+    version: "1.2.3"
+  }
 }
diff --git a/crates/arc-swap/METADATA b/crates/arc-swap/METADATA
index dae609e..4b5ddc9 100644
--- a/crates/arc-swap/METADATA
+++ b/crates/arc-swap/METADATA
@@ -1,20 +1,17 @@
 name: "arc-swap"
 description: "Atomically swappable Arc"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/arc-swap"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/arc-swap/arc-swap-1.6.0.crate"
-  }
   version: "1.6.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 9
     day: 6
   }
+  homepage: "https://crates.io/crates/arc-swap"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/arc-swap/arc-swap-1.6.0.crate"
+    version: "1.6.0"
+  }
 }
diff --git a/crates/arrayvec/METADATA b/crates/arrayvec/METADATA
index c4a014e..d5f9b7d 100644
--- a/crates/arrayvec/METADATA
+++ b/crates/arrayvec/METADATA
@@ -1,20 +1,17 @@
 name: "arrayvec"
 description: "A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/arrayvec"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/arrayvec/arrayvec-0.7.4.crate"
-  }
   version: "0.7.4"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 12
     day: 7
   }
+  homepage: "https://crates.io/crates/arrayvec"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/arrayvec/arrayvec-0.7.4.crate"
+    version: "0.7.4"
+  }
 }
diff --git a/crates/axum-core/METADATA b/crates/axum-core/METADATA
index 7933168..2bfcf8b 100644
--- a/crates/axum-core/METADATA
+++ b/crates/axum-core/METADATA
@@ -1,15 +1,6 @@
 name: "axum-core"
 description: "Core types and traits for axum"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "axum-core"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/axum-core/axum-core-0.3.4.crate"
-    primary_source: true
-  }
   version: "0.3.4"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 27
   }
+  homepage: "https://crates.io/crates/axum-core"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/axum-core/axum-core-0.3.4.crate"
+    version: "0.3.4"
+  }
 }
diff --git a/crates/bitflags/METADATA b/crates/bitflags/METADATA
index 77080ae..c33887c 100644
--- a/crates/bitflags/METADATA
+++ b/crates/bitflags/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/bitflags
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "bitflags"
 description: "A macro to generate structures which behave like bitflags."
 third_party {
+  version: "2.6.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
@@ -14,7 +11,7 @@
   homepage: "https://crates.io/crates/bitflags"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/bitflags/bitflags-2.5.0.crate"
-    version: "2.5.0"
+    value: "https://static.crates.io/crates/bitflags/bitflags-2.6.0.crate"
+    version: "2.6.0"
   }
 }
diff --git a/crates/chrono/METADATA b/crates/chrono/METADATA
index ea84889..0e90364 100644
--- a/crates/chrono/METADATA
+++ b/crates/chrono/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/chrono
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "chrono"
 description: "Date and time library for Rust"
 third_party {
+  version: "0.4.34"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/clang-sys/METADATA b/crates/clang-sys/METADATA
index 839736a..8353d21 100644
--- a/crates/clang-sys/METADATA
+++ b/crates/clang-sys/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/clang-sys
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "clang-sys"
 description: "Rust bindings for libclang."
 third_party {
+  version: "1.7.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/codespan-reporting/METADATA b/crates/codespan-reporting/METADATA
index 49d25ab..dde4eadd 100644
--- a/crates/codespan-reporting/METADATA
+++ b/crates/codespan-reporting/METADATA
@@ -8,4 +8,10 @@
     month: 4
     day: 1
   }
+  homepage: "https://crates.io/crates/codespan-reporting"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/codespan-reporting/codespan-reporting-0.11.1.crate"
+    version: "0.11.1"
+  }
 }
diff --git a/crates/config/METADATA b/crates/config/METADATA
index e86d4b6..57e9f04 100644
--- a/crates/config/METADATA
+++ b/crates/config/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/config
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "config"
 description: "Layered configuration system for Rust applications."
 third_party {
+  version: "0.13.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 1
     day: 31
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/config/config-0.13.4.crate"
-    version: "0.13.3"
-  }
+  homepage: "https://crates.io/crates/config"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/config/config-0.13.3.crate"
+    value: "https://static.crates.io/crates/config/config-0.13.4.crate"
     version: "0.13.4"
   }
 }
diff --git a/crates/configparser/METADATA b/crates/configparser/METADATA
index 6041010..36cf92e 100644
--- a/crates/configparser/METADATA
+++ b/crates/configparser/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/configparser
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "configparser"
 description: "A simple configuration parsing utility with no dependencies that allows you to parse INI and ini-style syntax. You can use this to write Rust programs which can be customized by end users easily."
 third_party {
+  version: "3.0.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 1
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/configparser/configparser-3.0.4.crate"
-    version: "3.0.2"
-  }
+  homepage: "https://crates.io/crates/configparser"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/configparser/configparser-3.0.2.crate"
+    value: "https://static.crates.io/crates/configparser/configparser-3.0.4.crate"
     version: "3.0.4"
   }
 }
diff --git a/crates/cov-mark/METADATA b/crates/cov-mark/METADATA
index f2bf960..bb461fb 100644
--- a/crates/cov-mark/METADATA
+++ b/crates/cov-mark/METADATA
@@ -1,21 +1,17 @@
 name: "cov-mark"
 description: "Manual coverage marks."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "cov-mark"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/cov-mark/cov-mark-2.0.0.crate"
-    primary_source: true
-  }
   version: "2.0.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 9
     day: 6
   }
+  homepage: "https://crates.io/crates/cov-mark"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/cov-mark/cov-mark-2.0.0.crate"
+    version: "2.0.0"
+  }
 }
diff --git a/crates/csv-core/METADATA b/crates/csv-core/METADATA
index 8aaf5d1..1a3753a 100644
--- a/crates/csv-core/METADATA
+++ b/crates/csv-core/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/csv-core
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "csv-core"
 description: "Bare bones CSV parsing with no_std support."
 third_party {
+  version: "0.1.11"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/csv/METADATA b/crates/csv/METADATA
index 9540efd..7001aeb 100644
--- a/crates/csv/METADATA
+++ b/crates/csv/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/csv
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "csv"
 description: "Fast CSV parsing with support for serde."
 third_party {
+  version: "1.3.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/darling/METADATA b/crates/darling/METADATA
index 74f306c..648e48c 100644
--- a/crates/darling/METADATA
+++ b/crates/darling/METADATA
@@ -1,20 +1,17 @@
 name: "darling"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "darling"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/darling/darling-0.20.8.crate"
-    primary_source: true
-  }
-  version: "0.20.8"
+  version: "0.20.10"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 3
     day: 6
   }
+  homepage: "https://crates.io/crates/darling"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/darling/darling-0.20.10.crate"
+    version: "0.20.10"
+  }
 }
diff --git a/crates/debug_tree/METADATA b/crates/debug_tree/METADATA
index 6537ff9..5d40a20 100644
--- a/crates/debug_tree/METADATA
+++ b/crates/debug_tree/METADATA
@@ -1,15 +1,6 @@
 name: "debug_tree"
 description: "Build a tree one element at a time and output it as a pretty string."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "debug_tree"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/debug_tree/debug_tree-0.4.0.crate"
-    primary_source: true
-  }
   version: "0.4.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 3
     day: 21
   }
+  homepage: "https://crates.io/crates/debug_tree"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/debug_tree/debug_tree-0.4.0.crate"
+    version: "0.4.0"
+  }
 }
diff --git a/crates/downcast/METADATA b/crates/downcast/METADATA
index f6625a7..8cb7978 100644
--- a/crates/downcast/METADATA
+++ b/crates/downcast/METADATA
@@ -1,14 +1,6 @@
 name: "downcast"
 description: "Trait for downcasting trait objects back to their original types."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/downcast"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/downcast/downcast-0.11.0.crate"
-  }
   version: "0.11.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 11
     day: 6
   }
+  homepage: "https://crates.io/crates/downcast"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/downcast/downcast-0.11.0.crate"
+    version: "0.11.0"
+  }
 }
diff --git a/crates/drm-ffi/METADATA b/crates/drm-ffi/METADATA
index e874b0f..75981de 100644
--- a/crates/drm-ffi/METADATA
+++ b/crates/drm-ffi/METADATA
@@ -1,25 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/drm-ffi
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "drm-ffi"
 description: "Safe, low-level bindings to the Direct Rendering Manager API"
 third_party {
+  version: "0.8.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 8
     day: 8
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/drm-ffi/drm-ffi-0.8.0.crate"
-    version: "0.7.1"
-  }
+  homepage: "https://crates.io/crates/drm-ffi"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/drm-ffi/drm-ffi-0.7.1.crate"
+    value: "https://static.crates.io/crates/drm-ffi/drm-ffi-0.8.0.crate"
     version: "0.8.0"
-    primary_source: true
   }
 }
diff --git a/crates/drm-fourcc/METADATA b/crates/drm-fourcc/METADATA
index 4d6f467..a11ee54 100644
--- a/crates/drm-fourcc/METADATA
+++ b/crates/drm-fourcc/METADATA
@@ -1,15 +1,6 @@
 name: "drm-fourcc"
 description: "Provides an enum with every valid Direct Rendering Manager (DRM) format fourcc"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "drm-fourcc"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/drm-fourcc/drm-fourcc-2.2.0.crate"
-    primary_source: true
-  }
   version: "2.2.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 3
     day: 13
   }
+  homepage: "https://crates.io/crates/drm-fourcc"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/drm-fourcc/drm-fourcc-2.2.0.crate"
+    version: "2.2.0"
+  }
 }
diff --git a/crates/equivalent/METADATA b/crates/equivalent/METADATA
index 17b3cb3..d76511d 100644
--- a/crates/equivalent/METADATA
+++ b/crates/equivalent/METADATA
@@ -1,21 +1,17 @@
 name: "equivalent"
 description: "Traits for key comparison in maps."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "equivalent"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate"
-    primary_source: true
-  }
   version: "1.0.1"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 8
     day: 9
   }
+  homepage: "https://crates.io/crates/equivalent"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate"
+    version: "1.0.1"
+  }
 }
diff --git a/crates/fixedbitset/METADATA b/crates/fixedbitset/METADATA
index 6d67be1..d6989b2 100644
--- a/crates/fixedbitset/METADATA
+++ b/crates/fixedbitset/METADATA
@@ -1,21 +1,17 @@
 name: "fixedbitset"
 description: "FixedBitSet is a simple bitset collection"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "fixedbitset"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/fixedbitset/fixedbitset-0.5.7.crate"
-    primary_source: true
-  }
   version: "0.5.7"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 8
     day: 9
   }
+  homepage: "https://crates.io/crates/fixedbitset"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/fixedbitset/fixedbitset-0.5.7.crate"
+    version: "0.5.7"
+  }
 }
diff --git a/crates/flate2/METADATA b/crates/flate2/METADATA
index 35efa02..a758d3e 100644
--- a/crates/flate2/METADATA
+++ b/crates/flate2/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/flate2
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "flate2"
 description: "DEFLATE compression and decompression exposed as Read/BufRead/Write streams. Supports miniz_oxide, miniz.c, and multiple zlib implementations. Supports zlib, gzip, and raw deflate streams."
 third_party {
+  version: "1.0.28"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/fnv/METADATA b/crates/fnv/METADATA
index 7f35136..5e44bbd 100644
--- a/crates/fnv/METADATA
+++ b/crates/fnv/METADATA
@@ -8,4 +8,10 @@
     month: 10
     day: 15
   }
+  homepage: "https://crates.io/crates/fnv"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/fnv/fnv-1.0.7.crate"
+    version: "1.0.7"
+  }
 }
diff --git a/crates/foreign-types-shared/METADATA b/crates/foreign-types-shared/METADATA
index fa7ec16..4706262 100644
--- a/crates/foreign-types-shared/METADATA
+++ b/crates/foreign-types-shared/METADATA
@@ -1,11 +1,17 @@
 name: "foreign-types-shared"
 description: "An internal crate used by foreign-types"
 third_party {
-  version: "0.3.1"
+  version: "0.1.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2022
     month: 4
     day: 27
   }
+  homepage: "https://crates.io/crates/foreign-types-shared"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/foreign-types-shared/foreign-types-shared-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/foreign-types/METADATA b/crates/foreign-types/METADATA
index e6ed451..592b299 100644
--- a/crates/foreign-types/METADATA
+++ b/crates/foreign-types/METADATA
@@ -8,4 +8,10 @@
     month: 4
     day: 27
   }
+  homepage: "https://crates.io/crates/foreign-types"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/foreign-types/foreign-types-0.3.1.crate"
+    version: "0.3.1"
+  }
 }
diff --git a/crates/form_urlencoded/METADATA b/crates/form_urlencoded/METADATA
index a5ed064..49b256b 100644
--- a/crates/form_urlencoded/METADATA
+++ b/crates/form_urlencoded/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 9
   }
+  homepage: "https://crates.io/crates/form_urlencoded"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/form_urlencoded/form_urlencoded-1.1.0.crate"
+    version: "1.1.0"
+  }
 }
diff --git a/crates/fxhash/METADATA b/crates/fxhash/METADATA
index 5d509d1..56cca22 100644
--- a/crates/fxhash/METADATA
+++ b/crates/fxhash/METADATA
@@ -1,20 +1,17 @@
 name: "fxhash"
 description: "A fast, non-secure, hashing algorithm derived from an internal hasher used in FireFox and Rustc."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/fxhash"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/fxhash/fxhash-0.2.1.crate"
-  }
   version: "0.2.1"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2022
     month: 7
     day: 21
   }
+  homepage: "https://crates.io/crates/fxhash"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/fxhash/fxhash-0.2.1.crate"
+    version: "0.2.1"
+  }
 }
diff --git a/crates/gdbstub_arch/METADATA b/crates/gdbstub_arch/METADATA
index daad820..e8e1c52 100644
--- a/crates/gdbstub_arch/METADATA
+++ b/crates/gdbstub_arch/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/gdbstub_arch
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "gdbstub_arch"
 description: "Implementations of `gdbstub::arch::Arch` for various architectures."
 third_party {
+  version: "0.3.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
diff --git a/crates/glam/METADATA b/crates/glam/METADATA
index 6eaa697..24a519b 100644
--- a/crates/glam/METADATA
+++ b/crates/glam/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/glam
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "glam"
 description: "A simple and fast 3D math library for games and graphics"
 third_party {
+  version: "0.25.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/gpio-cdev/METADATA b/crates/gpio-cdev/METADATA
index 7587c47..1729922 100644
--- a/crates/gpio-cdev/METADATA
+++ b/crates/gpio-cdev/METADATA
@@ -1,20 +1,17 @@
 name: "gpio-cdev"
 description: "Linux GPIO Character Device Support (/dev/gpiochipN)"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/gpio-cdev"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/gpio-cdev/gpio-cdev-0.6.0.crate"
-  }
   version: "0.6.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 11
     day: 29
   }
+  homepage: "https://crates.io/crates/gpio-cdev"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/gpio-cdev/gpio-cdev-0.6.0.crate"
+    version: "0.6.0"
+  }
 }
diff --git a/crates/grpcio-compiler/METADATA b/crates/grpcio-compiler/METADATA
index 7c09869..2ed866e 100644
--- a/crates/grpcio-compiler/METADATA
+++ b/crates/grpcio-compiler/METADATA
@@ -8,4 +8,10 @@
     month: 6
     day: 20
   }
+  homepage: "https://crates.io/crates/grpcio-compiler"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/grpcio-compiler/grpcio-compiler-0.12.1.crate"
+    version: "0.12.1"
+  }
 }
diff --git a/crates/grpcio/METADATA b/crates/grpcio/METADATA
index 082d18a..6eac44f 100644
--- a/crates/grpcio/METADATA
+++ b/crates/grpcio/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/grpcio
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "grpcio"
 description: "The rust language implementation of gRPC, base on the gRPC c core library."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/grpcio"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/grpcio/grpcio-0.13.0.crate"
-  }
   version: "0.13.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 10
     day: 26
   }
+  homepage: "https://crates.io/crates/grpcio"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/grpcio/grpcio-0.13.0.crate"
+    version: "0.13.0"
+  }
 }
diff --git a/crates/half/METADATA b/crates/half/METADATA
index f8f04e9..06fbaa4 100644
--- a/crates/half/METADATA
+++ b/crates/half/METADATA
@@ -8,4 +8,10 @@
     month: 2
     day: 2
   }
+  homepage: "https://crates.io/crates/half"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/half/half-2.2.1.crate"
+    version: "2.2.1"
+  }
 }
diff --git a/crates/heck/METADATA b/crates/heck/METADATA
index 7f8d66f..7c09771 100644
--- a/crates/heck/METADATA
+++ b/crates/heck/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/heck
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "heck"
 description: "heck is a case conversion library."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/heck"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/heck/heck-0.4.1.crate"
-  }
   version: "0.4.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 2
     day: 16
   }
+  homepage: "https://crates.io/crates/heck"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/heck/heck-0.4.1.crate"
+    version: "0.4.1"
+  }
 }
diff --git a/crates/hex/METADATA b/crates/hex/METADATA
index 590d65b..ffa8c2a 100644
--- a/crates/hex/METADATA
+++ b/crates/hex/METADATA
@@ -8,4 +8,10 @@
     month: 10
     day: 11
   }
+  homepage: "https://crates.io/crates/hex"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/hex/hex-0.4.3.crate"
+    version: "0.4.3"
+  }
 }
diff --git a/crates/hound/METADATA b/crates/hound/METADATA
index 5cbf973..f674541 100644
--- a/crates/hound/METADATA
+++ b/crates/hound/METADATA
@@ -1,15 +1,6 @@
 name: "hound"
 description: "A wav encoding and decoding library"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "hound"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/hound/hound-3.5.1.crate"
-    primary_source: true
-  }
   version: "3.5.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 8
     day: 9
   }
+  homepage: "https://crates.io/crates/hound"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/hound/hound-3.5.1.crate"
+    version: "3.5.1"
+  }
 }
diff --git a/crates/http/METADATA b/crates/http/METADATA
index d8be751..fad48f9 100644
--- a/crates/http/METADATA
+++ b/crates/http/METADATA
@@ -1,20 +1,17 @@
 name: "http"
 description: "()"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/http"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/http/http-0.2.9.crate"
-  }
   version: "0.2.9"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 6
     day: 2
   }
+  homepage: "https://crates.io/crates/http"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/http/http-0.2.9.crate"
+    version: "0.2.9"
+  }
 }
diff --git a/crates/hyper-timeout/METADATA b/crates/hyper-timeout/METADATA
index 076e13c..62c380a 100644
--- a/crates/hyper-timeout/METADATA
+++ b/crates/hyper-timeout/METADATA
@@ -1,21 +1,17 @@
 name: "hyper-timeout"
 description: "A connect, read and write timeout aware connector to be used with hyper Client."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "hyper-timeout"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/hyper-timeout/hyper-timeout-0.4.1.crate"
-    primary_source: true
-  }
   version: "0.4.1"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 6
     day: 3
   }
+  homepage: "https://crates.io/crates/hyper-timeout"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/hyper-timeout/hyper-timeout-0.4.1.crate"
+    version: "0.4.1"
+  }
 }
diff --git a/crates/hyper/METADATA b/crates/hyper/METADATA
index 6dbe029..8e14012 100644
--- a/crates/hyper/METADATA
+++ b/crates/hyper/METADATA
@@ -1,15 +1,6 @@
 name: "hyper"
 description: "A fast and correct HTTP library."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "hyper"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/hyper/hyper-0.14.28.crate"
-    primary_source: true
-  }
   version: "0.14.28"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 6
     day: 3
   }
+  homepage: "https://crates.io/crates/hyper"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/hyper/hyper-0.14.28.crate"
+    version: "0.14.28"
+  }
 }
diff --git a/crates/ident_case/METADATA b/crates/ident_case/METADATA
index 9f7434e..07ab501 100644
--- a/crates/ident_case/METADATA
+++ b/crates/ident_case/METADATA
@@ -1,14 +1,6 @@
 name: "ident_case"
 description: "Utility for applying case rules to Rust identifiers."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/ident_case"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/ident_case/ident_case-1.0.1.crate"
-  }
   version: "1.0.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 4
     day: 9
   }
+  homepage: "https://crates.io/crates/ident_case"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/ident_case/ident_case-1.0.1.crate"
+    version: "1.0.1"
+  }
 }
diff --git a/crates/indexmap/METADATA b/crates/indexmap/METADATA
index 16a2d95..4a86099 100644
--- a/crates/indexmap/METADATA
+++ b/crates/indexmap/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 12
   }
+  homepage: "https://crates.io/crates/indexmap"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/indexmap/indexmap-1.9.2.crate"
+    version: "1.9.2"
+  }
 }
diff --git a/crates/itoa/METADATA b/crates/itoa/METADATA
index 9b184c6..64948af 100644
--- a/crates/itoa/METADATA
+++ b/crates/itoa/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/itoa
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "itoa"
 description: "Fast integer primitive to string conversion"
 third_party {
+  version: "1.0.10"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/jni/METADATA b/crates/jni/METADATA
index 1c614f8..e87f3ed 100644
--- a/crates/jni/METADATA
+++ b/crates/jni/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/jni
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "jni"
 description: "Rust bindings to the JNI"
 third_party {
+  version: "0.21.1"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/kernlog/METADATA b/crates/kernlog/METADATA
index a38c76c..475dc16 100644
--- a/crates/kernlog/METADATA
+++ b/crates/kernlog/METADATA
@@ -1,17 +1,17 @@
 name: "kernlog"
-description:
-    "Logger implementation for low level kernel log"
-
+description: "Logger implementation for low level kernel log"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/kernlog/"
-  }
-  url {
-    type: GIT
-    value: "https://github.com/kstep/kernlog.rs"
-  }
   version: "0.3.1"
-  last_upgrade_date { year: 2021 month: 6 day: 8 }
   license_type: NOTICE
+  last_upgrade_date {
+    year: 2021
+    month: 6
+    day: 8
+  }
+  homepage: "https://crates.io/crates/kernlog"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/kernlog/kernlog-0.3.1.crate"
+    version: "0.3.1"
+  }
 }
diff --git a/crates/lazycell/METADATA b/crates/lazycell/METADATA
index 006e3ba..24bede9 100644
--- a/crates/lazycell/METADATA
+++ b/crates/lazycell/METADATA
@@ -1,14 +1,6 @@
 name: "lazycell"
 description: "A library providing a lazily filled Cell struct"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/lazycell"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/lazycell/lazycell-1.3.0.crate"
-  }
   version: "1.3.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 8
     day: 11
   }
+  homepage: "https://crates.io/crates/lazycell"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/lazycell/lazycell-1.3.0.crate"
+    version: "1.3.0"
+  }
 }
diff --git a/crates/libfuzzer-sys/METADATA b/crates/libfuzzer-sys/METADATA
index 284ba1f..7de0a9c 100644
--- a/crates/libfuzzer-sys/METADATA
+++ b/crates/libfuzzer-sys/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/libfuzzer-sys
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "libfuzzer-sys"
 description: "A wrapper around LLVM\'s libFuzzer runtime."
 third_party {
+  version: "0.4.7"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/libm/METADATA b/crates/libm/METADATA
index 5235bbd..b79efb9 100644
--- a/crates/libm/METADATA
+++ b/crates/libm/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/libm
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "libm"
 description: "libm in pure Rust"
 third_party {
+  version: "0.2.8"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/libtest-mimic/METADATA b/crates/libtest-mimic/METADATA
index d9629d5..cc92a98 100644
--- a/crates/libtest-mimic/METADATA
+++ b/crates/libtest-mimic/METADATA
@@ -1,20 +1,17 @@
 name: "libtest-mimic"
 description: "()"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/libtest-mimic"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/libtest-mimic/libtest-mimic-0.6.0.crate"
-  }
   version: "0.6.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 3
     day: 9
   }
+  homepage: "https://crates.io/crates/libtest-mimic"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/libtest-mimic/libtest-mimic-0.6.0.crate"
+    version: "0.6.0"
+  }
 }
diff --git a/crates/libz-sys/METADATA b/crates/libz-sys/METADATA
index 5616b15..1063b02 100644
--- a/crates/libz-sys/METADATA
+++ b/crates/libz-sys/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/libz-sys
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "libz-sys"
 description: "Low-level bindings to the system libz library (also known as zlib)."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/libz-sys"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/libz-sys/libz-sys-1.1.8.crate"
-  }
   version: "1.1.8"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 12
     day: 12
   }
+  homepage: "https://crates.io/crates/libz-sys"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/libz-sys/libz-sys-1.1.8.crate"
+    version: "1.1.8"
+  }
 }
diff --git a/crates/linkme-impl/METADATA b/crates/linkme-impl/METADATA
index 478e5cf..2b0d17f 100644
--- a/crates/linkme-impl/METADATA
+++ b/crates/linkme-impl/METADATA
@@ -8,4 +8,10 @@
     month: 6
     day: 1
   }
+  homepage: "https://crates.io/crates/linkme-impl"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/linkme-impl/linkme-impl-0.3.10.crate"
+    version: "0.3.10"
+  }
 }
diff --git a/crates/matchit/METADATA b/crates/matchit/METADATA
index 6904f3d..6ff2b39 100644
--- a/crates/matchit/METADATA
+++ b/crates/matchit/METADATA
@@ -1,15 +1,6 @@
 name: "matchit"
 description: "A high performance, zero-copy URL router."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "matchit"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/matchit/matchit-0.7.3.crate"
-    primary_source: true
-  }
   version: "0.7.3"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 6
     day: 3
   }
+  homepage: "https://crates.io/crates/matchit"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/matchit/matchit-0.7.3.crate"
+    version: "0.7.3"
+  }
 }
diff --git a/crates/merge/METADATA b/crates/merge/METADATA
index 3204e4f..34909db 100644
--- a/crates/merge/METADATA
+++ b/crates/merge/METADATA
@@ -1,14 +1,6 @@
 name: "merge"
 description: "Merge multiple values into one"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/merge"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/merge/merge-0.1.0.crate"
-  }
   version: "0.1.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 11
     day: 28
   }
+  homepage: "https://crates.io/crates/merge"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/merge/merge-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/merge_derive/METADATA b/crates/merge_derive/METADATA
index ac11bed..84bee94 100644
--- a/crates/merge_derive/METADATA
+++ b/crates/merge_derive/METADATA
@@ -1,14 +1,6 @@
 name: "merge_derive"
 description: "Derive macro for the merge::Merge trait"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/merge_derive"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/merge_derive/merge_derive-0.1.0.crate"
-  }
   version: "0.1.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 11
     day: 28
   }
+  homepage: "https://crates.io/crates/merge_derive"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/merge_derive/merge_derive-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/miette-derive/METADATA b/crates/miette-derive/METADATA
index 34e4ddc..3756b57 100644
--- a/crates/miette-derive/METADATA
+++ b/crates/miette-derive/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/miette-derive
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "miette-derive"
 description: "Derive macros for miette. Like `thiserror` for Diagnostics."
 third_party {
+  version: "5.10.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/minimal-lexical/METADATA b/crates/minimal-lexical/METADATA
index 6602fa3..6d1eef5 100644
--- a/crates/minimal-lexical/METADATA
+++ b/crates/minimal-lexical/METADATA
@@ -1,14 +1,6 @@
 name: "minimal-lexical"
 description: "Fast float parsing conversion routines."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/minimal-lexical"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/minimal-lexical/minimal-lexical-0.2.1.crate"
-  }
   version: "0.2.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 3
     day: 1
   }
+  homepage: "https://crates.io/crates/minimal-lexical"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/minimal-lexical/minimal-lexical-0.2.1.crate"
+    version: "0.2.1"
+  }
 }
diff --git a/crates/mls-rs-crypto-traits/METADATA b/crates/mls-rs-crypto-traits/METADATA
index af45f30..951cc5f 100644
--- a/crates/mls-rs-crypto-traits/METADATA
+++ b/crates/mls-rs-crypto-traits/METADATA
@@ -1,21 +1,17 @@
 name: "mls-rs-crypto-traits"
 description: "Crypto traits required to create a CryptoProvider for mls-rs"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "mls-rs-crypto-traits"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/mls-rs-crypto-traits/mls-rs-crypto-traits-0.10.0.crate"
-    primary_source: true
-  }
   version: "0.10.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 4
     day: 25
   }
+  homepage: "https://crates.io/crates/mls-rs-crypto-traits"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/mls-rs-crypto-traits/mls-rs-crypto-traits-0.10.0.crate"
+    version: "0.10.0"
+  }
 }
diff --git a/crates/mls-rs/METADATA b/crates/mls-rs/METADATA
index 9e35532..a986e62 100644
--- a/crates/mls-rs/METADATA
+++ b/crates/mls-rs/METADATA
@@ -1,21 +1,17 @@
 name: "mls-rs"
 description: "An implementation of Messaging Layer Security (RFC 9420)"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "mls-rs"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/mls-rs/mls-rs-0.39.1.crate"
-    primary_source: true
-  }
   version: "0.39.1"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 4
     day: 9
   }
+  homepage: "https://crates.io/crates/mls-rs"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/mls-rs/mls-rs-0.39.1.crate"
+    version: "0.39.1"
+  }
 }
diff --git a/crates/mockall_derive/METADATA b/crates/mockall_derive/METADATA
index 046e0b0..a482e70 100644
--- a/crates/mockall_derive/METADATA
+++ b/crates/mockall_derive/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/mockall_derive
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "mockall_derive"
 description: "()"
 third_party {
+  version: "0.12.1"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 4
     day: 25
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/mockall_derive/mockall_derive-0.12.1.crate"
-    version: "0.11.4"
-  }
+  homepage: "https://crates.io/crates/mockall_derive"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/mockall_derive/mockall_derive-0.11.4.crate"
+    value: "https://static.crates.io/crates/mockall_derive/mockall_derive-0.12.1.crate"
     version: "0.12.1"
   }
 }
diff --git a/crates/moveit/METADATA b/crates/moveit/METADATA
index 1725a0a..431f2c6 100644
--- a/crates/moveit/METADATA
+++ b/crates/moveit/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/moveit
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "moveit"
 description: "A library for safe, in-place construction of Rust (and C++!) objects."
 third_party {
+  version: "0.6.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/nix/METADATA b/crates/nix/METADATA
index 5505720..e30d992 100644
--- a/crates/nix/METADATA
+++ b/crates/nix/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/nix
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "nix"
 description: "Rust friendly bindings to *nix APIs"
 third_party {
+  version: "0.28.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/num-complex/METADATA b/crates/num-complex/METADATA
index 0ccae32..760fd80 100644
--- a/crates/num-complex/METADATA
+++ b/crates/num-complex/METADATA
@@ -1,25 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/num-complex
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "num-complex"
 description: "Complex numbers implementation for Rust"
 third_party {
+  version: "0.4.6"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 7
     day: 25
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/num-complex/num-complex-0.4.6.crate"
-    version: "0.4.5"
-  }
+  homepage: "https://crates.io/crates/num-complex"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/num-complex/num-complex-0.4.5.crate"
+    value: "https://static.crates.io/crates/num-complex/num-complex-0.4.6.crate"
     version: "0.4.6"
-    primary_source: true
   }
 }
diff --git a/crates/num-derive/METADATA b/crates/num-derive/METADATA
index c19cad0..d696f30 100644
--- a/crates/num-derive/METADATA
+++ b/crates/num-derive/METADATA
@@ -8,4 +8,10 @@
     month: 10
     day: 29
   }
+  homepage: "https://crates.io/crates/num-derive"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/num-derive/num-derive-0.3.3.crate"
+    version: "0.3.3"
+  }
 }
diff --git a/crates/num_enum/METADATA b/crates/num_enum/METADATA
index 22e2f98..1b08be3 100644
--- a/crates/num_enum/METADATA
+++ b/crates/num_enum/METADATA
@@ -1,21 +1,17 @@
 name: "num_enum"
 description: "Procedural macros to make inter-operation between primitives and enums easier."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "num_enum"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/num_enum/num_enum-0.7.3.crate"
-    primary_source: true
-  }
   version: "0.7.3"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 8
     day: 22
   }
+  homepage: "https://crates.io/crates/num_enum"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/num_enum/num_enum-0.7.3.crate"
+    version: "0.7.3"
+  }
 }
diff --git a/crates/num_enum_derive/METADATA b/crates/num_enum_derive/METADATA
index 7a01ae3..4423cb2 100644
--- a/crates/num_enum_derive/METADATA
+++ b/crates/num_enum_derive/METADATA
@@ -1,21 +1,17 @@
 name: "num_enum_derive"
 description: "Internal implementation details for ::num_enum (Procedural macros to make inter-operation between primitives and enums easier)"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "num_enum_derive"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.7.3.crate"
-    primary_source: true
-  }
   version: "0.7.3"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 8
     day: 22
   }
+  homepage: "https://crates.io/crates/num_enum_derive"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.7.3.crate"
+    version: "0.7.3"
+  }
 }
diff --git a/crates/octets/METADATA b/crates/octets/METADATA
index 4b391fc..7ed4cbc 100644
--- a/crates/octets/METADATA
+++ b/crates/octets/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 13
   }
+  homepage: "https://crates.io/crates/octets"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/octets/octets-0.2.0.crate"
+    version: "0.2.0"
+  }
 }
diff --git a/crates/oneshot-uniffi/METADATA b/crates/oneshot-uniffi/METADATA
index 0fc6c63..814f2b9 100644
--- a/crates/oneshot-uniffi/METADATA
+++ b/crates/oneshot-uniffi/METADATA
@@ -1,21 +1,17 @@
 name: "oneshot-uniffi"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "oneshot-uniffi"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/oneshot-uniffi/oneshot-uniffi-0.1.6.crate"
-    primary_source: true
-  }
   version: "0.1.6"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 3
     day: 21
   }
+  homepage: "https://crates.io/crates/oneshot-uniffi"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/oneshot-uniffi/oneshot-uniffi-0.1.6.crate"
+    version: "0.1.6"
+  }
 }
diff --git a/crates/openssl-macros/METADATA b/crates/openssl-macros/METADATA
index 521dfed..7d9eca9 100644
--- a/crates/openssl-macros/METADATA
+++ b/crates/openssl-macros/METADATA
@@ -8,4 +8,10 @@
     month: 11
     day: 30
   }
+  homepage: "https://crates.io/crates/openssl-macros"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/openssl-macros/openssl-macros-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/paste/METADATA b/crates/paste/METADATA
index d216d0a..72730d2 100644
--- a/crates/paste/METADATA
+++ b/crates/paste/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/paste
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "paste"
 description: "Macros for all your token pasting needs"
 third_party {
+  version: "1.0.14"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/pdl-compiler/METADATA b/crates/pdl-compiler/METADATA
index 5d40f30..247530b 100644
--- a/crates/pdl-compiler/METADATA
+++ b/crates/pdl-compiler/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/pdl-compiler
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "pdl-compiler"
 description: "Parser and serializer generator for protocol binary packets"
 third_party {
+  version: "0.3.1"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/percent-encoding/METADATA b/crates/percent-encoding/METADATA
index b0a2425..4a6976f 100644
--- a/crates/percent-encoding/METADATA
+++ b/crates/percent-encoding/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/percent-encoding
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "percent-encoding"
 description: "Percent encoding and decoding"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/percent-encoding"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/percent-encoding/percent-encoding-2.2.0.crate"
-  }
   version: "2.2.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 12
     day: 13
   }
+  homepage: "https://crates.io/crates/percent-encoding"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/percent-encoding/percent-encoding-2.2.0.crate"
+    version: "2.2.0"
+  }
 }
diff --git a/crates/percore/METADATA b/crates/percore/METADATA
index e3cf932..c4f2061 100644
--- a/crates/percore/METADATA
+++ b/crates/percore/METADATA
@@ -1,21 +1,17 @@
 name: "percore"
 description: "Safe per-CPU core mutable state on no_std platforms through exception masking."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "percore"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/percore/percore-0.1.0.crate"
-    primary_source: true
-  }
   version: "0.1.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 7
     day: 22
   }
+  homepage: "https://crates.io/crates/percore"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/percore/percore-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/petgraph/METADATA b/crates/petgraph/METADATA
index 97932bc..c9edca6 100644
--- a/crates/petgraph/METADATA
+++ b/crates/petgraph/METADATA
@@ -1,21 +1,17 @@
 name: "petgraph"
 description: "Graph data structure library. Provides graph types and graph algorithms."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "petgraph"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/petgraph/petgraph-0.6.5.crate"
-    primary_source: true
-  }
   version: "0.6.5"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 8
     day: 9
   }
+  homepage: "https://crates.io/crates/petgraph"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/petgraph/petgraph-0.6.5.crate"
+    version: "0.6.5"
+  }
 }
diff --git a/crates/pin-utils/METADATA b/crates/pin-utils/METADATA
index 273c4fd..7e4ab80 100644
--- a/crates/pin-utils/METADATA
+++ b/crates/pin-utils/METADATA
@@ -1,14 +1,6 @@
 name: "pin-utils"
 description: "Utilities for pinning"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/pin-utils"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate"
-  }
   version: "0.1.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 4
     day: 22
   }
+  homepage: "https://crates.io/crates/pin-utils"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/plotters/METADATA b/crates/plotters/METADATA
index 514b5f7..8313ab5 100644
--- a/crates/plotters/METADATA
+++ b/crates/plotters/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/plotters
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "plotters"
 description: "A Rust drawing library focus on data plotting for both WASM and native applications"
 third_party {
+  version: "0.3.5"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/predicates/METADATA b/crates/predicates/METADATA
index 3537a63..2788990 100644
--- a/crates/predicates/METADATA
+++ b/crates/predicates/METADATA
@@ -1,20 +1,17 @@
 name: "predicates"
 description: "An implementation of boolean-valued predicate functions."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/predicates"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/predicates/predicates-3.0.4.crate"
-  }
   version: "3.0.4"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 11
     day: 6
   }
+  homepage: "https://crates.io/crates/predicates"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/predicates/predicates-3.0.4.crate"
+    version: "3.0.4"
+  }
 }
diff --git a/crates/protobuf-codegen/METADATA b/crates/protobuf-codegen/METADATA
index 1aefc7a..72c1f5e 100644
--- a/crates/protobuf-codegen/METADATA
+++ b/crates/protobuf-codegen/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/protobuf-codegen
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "protobuf-codegen"
 description: "Code generator for rust-protobuf.  Includes a library and `protoc-gen-rust` binary.  See `protoc-rust` and `protobuf-codegen-pure` crates."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/protobuf-codegen"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-3.2.0.crate"
-  }
   version: "3.2.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 4
     day: 3
   }
+  homepage: "https://crates.io/crates/protobuf-codegen"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-3.2.0.crate"
+    version: "3.2.0"
+  }
 }
diff --git a/crates/protobuf-json-mapping/METADATA b/crates/protobuf-json-mapping/METADATA
index 4037ad4..d78ab36 100644
--- a/crates/protobuf-json-mapping/METADATA
+++ b/crates/protobuf-json-mapping/METADATA
@@ -8,4 +8,10 @@
     month: 3
     day: 22
   }
+  homepage: "https://crates.io/crates/protobuf-json-mapping"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf-json-mapping/protobuf-json-mapping-3.2.0.crate"
+    version: "3.2.0"
+  }
 }
diff --git a/crates/protobuf-parse/METADATA b/crates/protobuf-parse/METADATA
index ca74402..23ef3d9 100644
--- a/crates/protobuf-parse/METADATA
+++ b/crates/protobuf-parse/METADATA
@@ -1,14 +1,6 @@
 name: "protobuf-parse"
 description: "()"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/protobuf-parse"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/protobuf-parse/protobuf-parse-3.2.0.crate"
-  }
   version: "3.2.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 2
     day: 27
   }
+  homepage: "https://crates.io/crates/protobuf-parse"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf-parse/protobuf-parse-3.2.0.crate"
+    version: "3.2.0"
+  }
 }
diff --git a/crates/protobuf-support/METADATA b/crates/protobuf-support/METADATA
index af0a73c..b89ea9e 100644
--- a/crates/protobuf-support/METADATA
+++ b/crates/protobuf-support/METADATA
@@ -8,4 +8,10 @@
     month: 2
     day: 27
   }
+  homepage: "https://crates.io/crates/protobuf-support"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf-support/protobuf-support-3.2.0.crate"
+    version: "3.2.0"
+  }
 }
diff --git a/crates/protobuf/METADATA b/crates/protobuf/METADATA
index bcfd915..8b6c54d 100644
--- a/crates/protobuf/METADATA
+++ b/crates/protobuf/METADATA
@@ -8,4 +8,10 @@
     month: 4
     day: 3
   }
+  homepage: "https://crates.io/crates/protobuf"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf/protobuf-3.2.0.crate"
+    version: "3.2.0"
+  }
 }
diff --git a/crates/quiche/METADATA b/crates/quiche/METADATA
index 95eeae8..5c18427 100644
--- a/crates/quiche/METADATA
+++ b/crates/quiche/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/quiche
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "quiche"
 description: "\360\237\245\247 Savoury implementation of the QUIC transport protocol and HTTP/3"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/quiche"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/quiche/quiche-0.17.1.crate"
-  }
   version: "0.17.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 4
     day: 7
   }
+  homepage: "https://crates.io/crates/quiche"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/quiche/quiche-0.17.1.crate"
+    version: "0.17.1"
+  }
 }
diff --git a/crates/quickcheck/METADATA b/crates/quickcheck/METADATA
index 1009876..8c63f5e 100644
--- a/crates/quickcheck/METADATA
+++ b/crates/quickcheck/METADATA
@@ -8,4 +8,10 @@
     month: 10
     day: 19
   }
+  homepage: "https://crates.io/crates/quickcheck"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/quickcheck/quickcheck-1.0.3.crate"
+    version: "1.0.3"
+  }
 }
diff --git a/crates/quote/METADATA b/crates/quote/METADATA
index 54a2234..59e4270 100644
--- a/crates/quote/METADATA
+++ b/crates/quote/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/quote
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "quote"
 description: "Quasi-quoting macro quote!(...)"
 third_party {
+  version: "1.0.36"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/regex-automata/METADATA b/crates/regex-automata/METADATA
index 39bd539..f6f3925 100644
--- a/crates/regex-automata/METADATA
+++ b/crates/regex-automata/METADATA
@@ -8,4 +8,10 @@
     month: 6
     day: 21
   }
+  homepage: "https://crates.io/crates/regex-automata"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/regex-automata/regex-automata-0.1.10.crate"
+    version: "0.1.10"
+  }
 }
diff --git a/crates/remain/METADATA b/crates/remain/METADATA
index bf9eb65..75ff7d4 100644
--- a/crates/remain/METADATA
+++ b/crates/remain/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/remain
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "remain"
 description: "Compile-time checks that an enum, struct, or match is written in sorted order."
 third_party {
+  version: "0.2.12"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/rustc-demangle-capi/METADATA b/crates/rustc-demangle-capi/METADATA
index 62d8c92..cff4dac 100644
--- a/crates/rustc-demangle-capi/METADATA
+++ b/crates/rustc-demangle-capi/METADATA
@@ -1,20 +1,17 @@
 name: "rustc-demangle-capi"
 description: "C API for the `rustc-demangle` crate"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/rustc-demangle-capi"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/rustc-demangle-capi/rustc-demangle-capi-0.1.0.crate"
-  }
   version: "0.1.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2021
     month: 8
     day: 17
   }
+  homepage: "https://crates.io/crates/rustc-demangle-capi"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/rustc-demangle-capi/rustc-demangle-capi-0.1.0.crate"
+    version: "0.1.0"
+  }
 }
diff --git a/crates/rustix/METADATA b/crates/rustix/METADATA
index 67bb26c..d4e4ac0 100644
--- a/crates/rustix/METADATA
+++ b/crates/rustix/METADATA
@@ -1,21 +1,17 @@
 name: "rustix"
 description: "Safe Rust bindings to POSIX/Unix/Linux/Winsock-like syscalls"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "rustix"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/rustix/rustix-0.38.31.crate"
-    primary_source: true
-  }
   version: "0.38.31"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 3
     day: 13
   }
+  homepage: "https://crates.io/crates/rustix"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/rustix/rustix-0.38.31.crate"
+    version: "0.38.31"
+  }
 }
diff --git a/crates/ryu/METADATA b/crates/ryu/METADATA
index c83b028..0b494b6 100644
--- a/crates/ryu/METADATA
+++ b/crates/ryu/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/ryu
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "ryu"
 description: "Fast floating point to string conversion"
 third_party {
+  version: "1.0.16"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/same-file/METADATA b/crates/same-file/METADATA
index 46da1e4..bb9b5f2 100644
--- a/crates/same-file/METADATA
+++ b/crates/same-file/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 21
   }
+  homepage: "https://crates.io/crates/same-file"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/same-file/same-file-1.0.6.crate"
+    version: "1.0.6"
+  }
 }
diff --git a/crates/serde-xml-rs/METADATA b/crates/serde-xml-rs/METADATA
index b1016df..5fb6a43 100644
--- a/crates/serde-xml-rs/METADATA
+++ b/crates/serde-xml-rs/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/serde-xml-rs
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "serde-xml-rs"
 description: "xml-rs based deserializer for Serde (compatible with 0.9+)"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/serde_xml_rs"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/serde-xml-rs/serde-xml-rs-0.6.0.crate"
-  }
   version: "0.6.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 12
     day: 19
   }
+  homepage: "https://crates.io/crates/serde-xml-rs"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/serde-xml-rs/serde-xml-rs-0.6.0.crate"
+    version: "0.6.0"
+  }
 }
diff --git a/crates/serde_json/METADATA b/crates/serde_json/METADATA
index 1dbe9ca..86bb7e2 100644
--- a/crates/serde_json/METADATA
+++ b/crates/serde_json/METADATA
@@ -8,4 +8,10 @@
     month: 3
     day: 20
   }
+  homepage: "https://crates.io/crates/serde_json"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/serde_json/serde_json-1.0.94.crate"
+    version: "1.0.94"
+  }
 }
diff --git a/crates/serde_spanned/METADATA b/crates/serde_spanned/METADATA
index a71bbab..3c386cd 100644
--- a/crates/serde_spanned/METADATA
+++ b/crates/serde_spanned/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/serde_spanned
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "serde_spanned"
 description: "Serde-compatible spanned Value"
 third_party {
+  version: "0.6.5"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 5
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.5.crate"
-    version: "0.6.3"
-  }
+  homepage: "https://crates.io/crates/serde_spanned"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.3.crate"
+    value: "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.5.crate"
     version: "0.6.5"
   }
 }
diff --git a/crates/serde_test/METADATA b/crates/serde_test/METADATA
index f012c0f..957e8da 100644
--- a/crates/serde_test/METADATA
+++ b/crates/serde_test/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/serde_test
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "serde_test"
 description: "Token De/Serializer for testing De/Serialize implementations"
 third_party {
+  version: "1.0.176"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/serde_yaml/METADATA b/crates/serde_yaml/METADATA
index 2c873f9..60fd382 100644
--- a/crates/serde_yaml/METADATA
+++ b/crates/serde_yaml/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/serde_yaml
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "serde_yaml"
 description: "YAML data format for Serde"
 third_party {
+  version: "0.9.31"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 5
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.31.crate"
-    version: "0.9.25"
-  }
+  homepage: "https://crates.io/crates/serde_yaml"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.25.crate"
+    value: "https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.31.crate"
     version: "0.9.31"
   }
 }
diff --git a/crates/sharded-slab/METADATA b/crates/sharded-slab/METADATA
index 91eb7b3..d7ac9c5 100644
--- a/crates/sharded-slab/METADATA
+++ b/crates/sharded-slab/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/sharded-slab
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "sharded-slab"
 description: "A lock-free concurrent slab."
 third_party {
+  version: "0.1.7"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/shared_child/METADATA b/crates/shared_child/METADATA
index 029d963..2a93c10 100644
--- a/crates/shared_child/METADATA
+++ b/crates/shared_child/METADATA
@@ -1,14 +1,6 @@
 name: "shared_child"
 description: "a library for using child processes from multiple threads"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/shared_child"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/shared_child/shared_child-1.0.0.crate"
-  }
   version: "1.0.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 3
     day: 1
   }
+  homepage: "https://crates.io/crates/shared_child"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/shared_child/shared_child-1.0.0.crate"
+    version: "1.0.0"
+  }
 }
diff --git a/crates/shlex/METADATA b/crates/shlex/METADATA
index b7ec356..20b4d83 100644
--- a/crates/shlex/METADATA
+++ b/crates/shlex/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/shlex
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "shlex"
 description: "Split a string into shell words, like Python\'s shlex."
 third_party {
+  version: "1.3.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/siphasher/METADATA b/crates/siphasher/METADATA
index c379548..87557c6 100644
--- a/crates/siphasher/METADATA
+++ b/crates/siphasher/METADATA
@@ -1,15 +1,6 @@
 name: "siphasher"
 description: "SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "siphasher"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/siphasher/siphasher-1.0.1.crate"
-    primary_source: true
-  }
   version: "1.0.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 3
     day: 21
   }
+  homepage: "https://crates.io/crates/siphasher"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/siphasher/siphasher-1.0.1.crate"
+    version: "1.0.1"
+  }
 }
diff --git a/crates/thiserror-impl/METADATA b/crates/thiserror-impl/METADATA
index 457e593..70b120c 100644
--- a/crates/thiserror-impl/METADATA
+++ b/crates/thiserror-impl/METADATA
@@ -1,11 +1,17 @@
 name: "thiserror-impl"
 description: "Implementation detail of the `thiserror` crate"
 third_party {
-  version: "1.0.40"
+  version: "1.0.49"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 3
     day: 23
   }
+  homepage: "https://crates.io/crates/thiserror-impl"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.49.crate"
+    version: "1.0.49"
+  }
 }
diff --git a/crates/threadpool/METADATA b/crates/threadpool/METADATA
index 88de0ca..a47058e 100644
--- a/crates/threadpool/METADATA
+++ b/crates/threadpool/METADATA
@@ -1,20 +1,17 @@
 name: "threadpool"
 description: "A thread pool for running a number of jobs on a fixed set of worker threads."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/threadpool"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/threadpool/threadpool-1.8.1.crate"
-  }
   version: "1.8.1"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 4
     day: 19
   }
+  homepage: "https://crates.io/crates/threadpool"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/threadpool/threadpool-1.8.1.crate"
+    version: "1.8.1"
+  }
 }
diff --git a/crates/tikv-jemalloc-sys/METADATA b/crates/tikv-jemalloc-sys/METADATA
index 3ad46ed..74ebdfe 100644
--- a/crates/tikv-jemalloc-sys/METADATA
+++ b/crates/tikv-jemalloc-sys/METADATA
@@ -1,21 +1,17 @@
 name: "tikv-jemalloc-sys"
 description: "Rust bindings for the jemalloc c library"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tikv-jemalloc-sys"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tikv-jemalloc-sys/tikv-jemalloc-sys-0.5.4+5.3.0-patched.crate"
-    primary_source: true
-  }
   version: "0.5.4+5.3.0-patched"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 5
     day: 16
   }
+  homepage: "https://crates.io/crates/tikv-jemalloc-sys"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tikv-jemalloc-sys/tikv-jemalloc-sys-0.5.4+5.3.0-patched.crate"
+    version: "0.5.4+5.3.0-patched"
+  }
 }
diff --git a/crates/tikv-jemallocator/METADATA b/crates/tikv-jemallocator/METADATA
index 3d85c01..c37ef7b 100644
--- a/crates/tikv-jemallocator/METADATA
+++ b/crates/tikv-jemallocator/METADATA
@@ -1,21 +1,17 @@
 name: "tikv-jemallocator"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tikv-jemallocator"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tikv-jemallocator/tikv-jemallocator-0.5.4.crate"
-    primary_source: true
-  }
   version: "0.5.4"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 5
     day: 16
   }
+  homepage: "https://crates.io/crates/tikv-jemallocator"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tikv-jemallocator/tikv-jemallocator-0.5.4.crate"
+    version: "0.5.4"
+  }
 }
diff --git a/crates/tinyvec_macros/METADATA b/crates/tinyvec_macros/METADATA
index 4e15e6e..68f4401 100644
--- a/crates/tinyvec_macros/METADATA
+++ b/crates/tinyvec_macros/METADATA
@@ -8,4 +8,10 @@
     month: 2
     day: 17
   }
+  homepage: "https://crates.io/crates/tinyvec_macros"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.1.crate"
+    version: "0.1.1"
+  }
 }
diff --git a/crates/tokio-io-timeout/METADATA b/crates/tokio-io-timeout/METADATA
index 3726ce5..58b8a74 100644
--- a/crates/tokio-io-timeout/METADATA
+++ b/crates/tokio-io-timeout/METADATA
@@ -1,21 +1,17 @@
 name: "tokio-io-timeout"
 description: "Tokio wrappers which apply timeouts to IO operations"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tokio-io-timeout"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tokio-io-timeout/tokio-io-timeout-1.2.0.crate"
-    primary_source: true
-  }
   version: "1.2.0"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 6
     day: 3
   }
+  homepage: "https://crates.io/crates/tokio-io-timeout"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tokio-io-timeout/tokio-io-timeout-1.2.0.crate"
+    version: "1.2.0"
+  }
 }
diff --git a/crates/tokio-openssl/METADATA b/crates/tokio-openssl/METADATA
index c11e2c1..0f95419 100644
--- a/crates/tokio-openssl/METADATA
+++ b/crates/tokio-openssl/METADATA
@@ -1,21 +1,17 @@
 name: "tokio-openssl"
 description: "An implementation of SSL streams for Tokio built on top of the openssl crate"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tokio-openssl"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tokio-openssl/tokio-openssl-0.6.5.crate"
-    primary_source: true
-  }
   version: "0.6.5"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 10
     day: 16
   }
+  homepage: "https://crates.io/crates/tokio-openssl"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tokio-openssl/tokio-openssl-0.6.5.crate"
+    version: "0.6.5"
+  }
 }
diff --git a/crates/tokio-stream/METADATA b/crates/tokio-stream/METADATA
index 5a3e237..b3219d9 100644
--- a/crates/tokio-stream/METADATA
+++ b/crates/tokio-stream/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/tokio-stream
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "tokio-stream"
 description: "Utilities to work with `Stream` and `tokio`."
 third_party {
+  version: "0.1.14"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/tokio-test/METADATA b/crates/tokio-test/METADATA
index 62a3a59..9ecc2a6 100644
--- a/crates/tokio-test/METADATA
+++ b/crates/tokio-test/METADATA
@@ -8,4 +8,10 @@
     month: 5
     day: 19
   }
+  homepage: "https://crates.io/crates/tokio-test"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tokio-test/tokio-test-0.4.2.crate"
+    version: "0.4.2"
+  }
 }
diff --git a/crates/tokio-util/METADATA b/crates/tokio-util/METADATA
index ffaab87..cd30698 100644
--- a/crates/tokio-util/METADATA
+++ b/crates/tokio-util/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/tokio-util
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "tokio-util"
 description: "Utilities for working with Tokio."
 third_party {
+  version: "0.7.10"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/tokio/METADATA b/crates/tokio/METADATA
index b8a5d8a..5c43d7f 100644
--- a/crates/tokio/METADATA
+++ b/crates/tokio/METADATA
@@ -1,23 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/tokio
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "tokio"
 description: "An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/tokio"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/tokio/tokio-1.25.0.crate"
-  }
-  version: "1.25.0"
+  version: "1.32.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 2
     day: 6
   }
+  homepage: "https://crates.io/crates/tokio"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tokio/tokio-1.32.0.crate"
+    version: "1.32.0"
+  }
 }
diff --git a/crates/toml/METADATA b/crates/toml/METADATA
index 89d0bf3..9caed4b 100644
--- a/crates/toml/METADATA
+++ b/crates/toml/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/toml
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "toml"
 description: "()"
 third_party {
+  version: "0.8.10"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 7
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/toml/toml-0.8.10.crate"
-    version: "0.7.6"
-  }
+  homepage: "https://crates.io/crates/toml"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/toml/toml-0.7.6.crate"
+    value: "https://static.crates.io/crates/toml/toml-0.8.10.crate"
     version: "0.8.10"
   }
 }
diff --git a/crates/toml_datetime/METADATA b/crates/toml_datetime/METADATA
index b8cbd4c..b1cfe33 100644
--- a/crates/toml_datetime/METADATA
+++ b/crates/toml_datetime/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/toml_datetime
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "toml_datetime"
 description: "A TOML-compatible datetime type"
 third_party {
+  version: "0.6.5"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 7
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.5.crate"
-    version: "0.6.3"
-  }
+  homepage: "https://crates.io/crates/toml_datetime"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.3.crate"
+    value: "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.5.crate"
     version: "0.6.5"
   }
 }
diff --git a/crates/toml_edit/METADATA b/crates/toml_edit/METADATA
index 6c3f465..ab7f1ff 100644
--- a/crates/toml_edit/METADATA
+++ b/crates/toml_edit/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/toml_edit
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "toml_edit"
 description: "Yet another format-preserving TOML parser."
 third_party {
+  version: "0.22.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 7
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/toml_edit/toml_edit-0.22.4.crate"
-    version: "0.19.14"
-  }
+  homepage: "https://crates.io/crates/toml_edit"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/toml_edit/toml_edit-0.19.14.crate"
+    value: "https://static.crates.io/crates/toml_edit/toml_edit-0.22.4.crate"
     version: "0.22.4"
   }
 }
diff --git a/crates/tonic/METADATA b/crates/tonic/METADATA
index 72c4884..0b95022 100644
--- a/crates/tonic/METADATA
+++ b/crates/tonic/METADATA
@@ -1,15 +1,6 @@
 name: "tonic"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tonic"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tonic/tonic-0.11.0.crate"
-    primary_source: true
-  }
   version: "0.11.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 6
     day: 3
   }
+  homepage: "https://crates.io/crates/tonic"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tonic/tonic-0.11.0.crate"
+    version: "0.11.0"
+  }
 }
diff --git a/crates/tower-layer/METADATA b/crates/tower-layer/METADATA
index 85403fb..0a141ac 100644
--- a/crates/tower-layer/METADATA
+++ b/crates/tower-layer/METADATA
@@ -1,15 +1,6 @@
 name: "tower-layer"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tower-layer"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tower-layer/tower-layer-0.3.2.crate"
-    primary_source: true
-  }
   version: "0.3.2"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 24
   }
+  homepage: "https://crates.io/crates/tower-layer"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tower-layer/tower-layer-0.3.2.crate"
+    version: "0.3.2"
+  }
 }
diff --git a/crates/tower-service/METADATA b/crates/tower-service/METADATA
index 95541e1..7b08f54 100644
--- a/crates/tower-service/METADATA
+++ b/crates/tower-service/METADATA
@@ -1,15 +1,6 @@
 name: "tower-service"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tower-service"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tower-service/tower-service-0.3.2.crate"
-    primary_source: true
-  }
   version: "0.3.2"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 24
   }
+  homepage: "https://crates.io/crates/tower-service"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tower-service/tower-service-0.3.2.crate"
+    version: "0.3.2"
+  }
 }
diff --git a/crates/tower/METADATA b/crates/tower/METADATA
index 488e27b..9601d1f 100644
--- a/crates/tower/METADATA
+++ b/crates/tower/METADATA
@@ -1,15 +1,6 @@
 name: "tower"
 description: "()"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "tower"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/tower/tower-0.4.13.crate"
-    primary_source: true
-  }
   version: "0.4.13"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 27
   }
+  homepage: "https://crates.io/crates/tower"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tower/tower-0.4.13.crate"
+    version: "0.4.13"
+  }
 }
diff --git a/crates/tracing-attributes/METADATA b/crates/tracing-attributes/METADATA
index a22abd4..ca2c532 100644
--- a/crates/tracing-attributes/METADATA
+++ b/crates/tracing-attributes/METADATA
@@ -8,4 +8,10 @@
     month: 11
     day: 17
   }
+  homepage: "https://crates.io/crates/tracing-attributes"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.27.crate"
+    version: "0.1.27"
+  }
 }
diff --git a/crates/tracing-core/METADATA b/crates/tracing-core/METADATA
index 6993fb6..80b6a1b 100644
--- a/crates/tracing-core/METADATA
+++ b/crates/tracing-core/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/tracing-core
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "tracing-core"
 description: "Core primitives for application-level tracing."
 third_party {
+  version: "0.1.32"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/tracing-subscriber/METADATA b/crates/tracing-subscriber/METADATA
index bf11a20..8a93a5f 100644
--- a/crates/tracing-subscriber/METADATA
+++ b/crates/tracing-subscriber/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/tracing-subscriber
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "tracing-subscriber"
 description: "()"
 third_party {
+  version: "0.3.18"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/tracing/METADATA b/crates/tracing/METADATA
index 150b64d..8990ac4 100644
--- a/crates/tracing/METADATA
+++ b/crates/tracing/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/tracing
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "tracing"
 description: "A scoped, structured logging and diagnostics system."
 third_party {
+  version: "0.1.40"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/try-lock/METADATA b/crates/try-lock/METADATA
index e0c7b76..b0a1697 100644
--- a/crates/try-lock/METADATA
+++ b/crates/try-lock/METADATA
@@ -1,15 +1,6 @@
 name: "try-lock"
 description: "A lightweight atomic lock."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "try-lock"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/try-lock/try-lock-0.2.5.crate"
-    primary_source: true
-  }
   version: "0.2.5"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 27
   }
+  homepage: "https://crates.io/crates/try-lock"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/try-lock/try-lock-0.2.5.crate"
+    version: "0.2.5"
+  }
 }
diff --git a/crates/tungstenite/METADATA b/crates/tungstenite/METADATA
index 8220772..288a9f7 100644
--- a/crates/tungstenite/METADATA
+++ b/crates/tungstenite/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/tungstenite
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "tungstenite"
 description: "Lightweight stream-based WebSocket implementation"
 third_party {
+  version: "0.21.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/twox-hash/METADATA b/crates/twox-hash/METADATA
index 7abeec4..894dc0b 100644
--- a/crates/twox-hash/METADATA
+++ b/crates/twox-hash/METADATA
@@ -1,14 +1,6 @@
 name: "twox-hash"
 description: "A Rust implementation of the XXHash and XXH3 algorithms"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/twox-hash"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/twox-hash/twox-hash-1.6.3.crate"
-  }
   version: "1.6.3"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 1
     day: 17
   }
+  homepage: "https://crates.io/crates/twox-hash"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/twox-hash/twox-hash-1.6.3.crate"
+    version: "1.6.3"
+  }
 }
diff --git a/crates/ucd-trie/METADATA b/crates/ucd-trie/METADATA
index fe89487..ddcac03 100644
--- a/crates/ucd-trie/METADATA
+++ b/crates/ucd-trie/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/ucd-trie
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "ucd-trie"
 description: "A trie for storing Unicode codepoint sets and maps."
 third_party {
+  version: "0.1.6"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/unicode-bidi/METADATA b/crates/unicode-bidi/METADATA
index a004976..e650730 100644
--- a/crates/unicode-bidi/METADATA
+++ b/crates/unicode-bidi/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/unicode-bidi
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "unicode-bidi"
 description: "Implementation of the Unicode Bidirectional Algorithm"
 third_party {
+  version: "0.3.15"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/unicode-ident/METADATA b/crates/unicode-ident/METADATA
index 5e99d8f..bacf6b2 100644
--- a/crates/unicode-ident/METADATA
+++ b/crates/unicode-ident/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/unicode-ident
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "unicode-ident"
 description: "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/unicode-ident"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.8.crate"
-  }
   version: "1.0.8"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 3
     day: 30
   }
+  homepage: "https://crates.io/crates/unicode-ident"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.8.crate"
+    version: "1.0.8"
+  }
 }
diff --git a/crates/unicode-normalization/METADATA b/crates/unicode-normalization/METADATA
index cf6dd74..e9a2e73 100644
--- a/crates/unicode-normalization/METADATA
+++ b/crates/unicode-normalization/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 19
   }
+  homepage: "https://crates.io/crates/unicode-normalization"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.22.crate"
+    version: "0.1.22"
+  }
 }
diff --git a/crates/unicode-segmentation/METADATA b/crates/unicode-segmentation/METADATA
index 3f229ac..4f33b37 100644
--- a/crates/unicode-segmentation/METADATA
+++ b/crates/unicode-segmentation/METADATA
@@ -8,4 +8,10 @@
     month: 2
     day: 17
   }
+  homepage: "https://crates.io/crates/unicode-segmentation"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/unicode-segmentation/unicode-segmentation-1.10.1.crate"
+    version: "1.10.1"
+  }
 }
diff --git a/crates/unicode-width/METADATA b/crates/unicode-width/METADATA
index 7f184b6..46ae386 100644
--- a/crates/unicode-width/METADATA
+++ b/crates/unicode-width/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/unicode-width
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "unicode-width"
 description: "Determine displayed width of `char` and `str` types according to Unicode Standard Annex #11 rules."
 third_party {
+  version: "0.1.11"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/unicode-xid/METADATA b/crates/unicode-xid/METADATA
index ae2b68d..7e00076 100644
--- a/crates/unicode-xid/METADATA
+++ b/crates/unicode-xid/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 19
   }
+  homepage: "https://crates.io/crates/unicode-xid"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/unicode-xid/unicode-xid-0.2.4.crate"
+    version: "0.2.4"
+  }
 }
diff --git a/crates/uniffi/METADATA b/crates/uniffi/METADATA
index f48b5c6..6f17645 100644
--- a/crates/uniffi/METADATA
+++ b/crates/uniffi/METADATA
@@ -1,15 +1,6 @@
 name: "uniffi"
 description: "a multi-language bindings generator for rust"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "uniffi"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/uniffi/uniffi-0.27.1.crate"
-    primary_source: true
-  }
   version: "0.27.1"
   license_type: RECIPROCAL
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 6
   }
+  homepage: "https://crates.io/crates/uniffi"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/uniffi/uniffi-0.27.1.crate"
+    version: "0.27.1"
+  }
 }
diff --git a/crates/uniffi_checksum_derive/METADATA b/crates/uniffi_checksum_derive/METADATA
index b6b7b8a..d9804c5 100644
--- a/crates/uniffi_checksum_derive/METADATA
+++ b/crates/uniffi_checksum_derive/METADATA
@@ -1,15 +1,6 @@
 name: "uniffi_checksum_derive"
 description: "a multi-language bindings generator for rust (checksum custom derive)"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "uniffi_checksum_derive"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/uniffi_checksum_derive/uniffi_checksum_derive-0.27.1.crate"
-    primary_source: true
-  }
   version: "0.27.1"
   license_type: RECIPROCAL
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 6
   }
+  homepage: "https://crates.io/crates/uniffi_checksum_derive"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/uniffi_checksum_derive/uniffi_checksum_derive-0.27.1.crate"
+    version: "0.27.1"
+  }
 }
diff --git a/crates/uniffi_core/METADATA b/crates/uniffi_core/METADATA
index d840da5..586808c 100644
--- a/crates/uniffi_core/METADATA
+++ b/crates/uniffi_core/METADATA
@@ -1,15 +1,6 @@
 name: "uniffi_core"
 description: "a multi-language bindings generator for rust (runtime support code)"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "uniffi_core"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/uniffi_core/uniffi_core-0.27.1.crate"
-    primary_source: true
-  }
   version: "0.27.1"
   license_type: RECIPROCAL
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 6
   }
+  homepage: "https://crates.io/crates/uniffi_core"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/uniffi_core/uniffi_core-0.27.1.crate"
+    version: "0.27.1"
+  }
 }
diff --git a/crates/uniffi_macros/METADATA b/crates/uniffi_macros/METADATA
index 39ae01d..e1b19c1 100644
--- a/crates/uniffi_macros/METADATA
+++ b/crates/uniffi_macros/METADATA
@@ -1,15 +1,6 @@
 name: "uniffi_macros"
 description: "a multi-language bindings generator for rust (convenience macros)"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "uniffi_macros"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/uniffi_macros/uniffi_macros-0.27.1.crate"
-    primary_source: true
-  }
   version: "0.27.1"
   license_type: RECIPROCAL
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 6
   }
+  homepage: "https://crates.io/crates/uniffi_macros"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/uniffi_macros/uniffi_macros-0.27.1.crate"
+    version: "0.27.1"
+  }
 }
diff --git a/crates/uniffi_meta/METADATA b/crates/uniffi_meta/METADATA
index efbf491..48c46b8 100644
--- a/crates/uniffi_meta/METADATA
+++ b/crates/uniffi_meta/METADATA
@@ -1,15 +1,6 @@
 name: "uniffi_meta"
 description: "uniffi_meta"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "uniffi_meta"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/uniffi_meta/uniffi_meta-0.27.1.crate"
-    primary_source: true
-  }
   version: "0.27.1"
   license_type: RECIPROCAL
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 6
   }
+  homepage: "https://crates.io/crates/uniffi_meta"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/uniffi_meta/uniffi_meta-0.27.1.crate"
+    version: "0.27.1"
+  }
 }
diff --git a/crates/unsafe-libyaml/METADATA b/crates/unsafe-libyaml/METADATA
index 3bb4995..496d8c7 100644
--- a/crates/unsafe-libyaml/METADATA
+++ b/crates/unsafe-libyaml/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/unsafe-libyaml
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "unsafe-libyaml"
 description: "libyaml transpiled to rust by c2rust"
 third_party {
+  version: "0.2.10"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 7
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.10.crate"
-    version: "0.2.10"
-  }
+  homepage: "https://crates.io/crates/unsafe-libyaml"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.9.crate"
+    value: "https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.10.crate"
     version: "0.2.10"
   }
 }
diff --git a/crates/untrusted/METADATA b/crates/untrusted/METADATA
index 60df743..27cbd5a 100644
--- a/crates/untrusted/METADATA
+++ b/crates/untrusted/METADATA
@@ -1,14 +1,6 @@
 name: "untrusted"
 description: "Safe, fast, zero-panic, zero-crashing, zero-allocation parsing of untrusted inputs in Rust."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/untrusted"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/untrusted/untrusted-0.7.1.crate"
-  }
   version: "0.7.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 11
     day: 26
   }
+  homepage: "https://crates.io/crates/untrusted"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/untrusted/untrusted-0.7.1.crate"
+    version: "0.7.1"
+  }
 }
diff --git a/crates/url/METADATA b/crates/url/METADATA
index 1a9638d..f358ef2 100644
--- a/crates/url/METADATA
+++ b/crates/url/METADATA
@@ -8,4 +8,10 @@
     month: 12
     day: 19
   }
+  homepage: "https://crates.io/crates/url"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/url/url-2.3.1.crate"
+    version: "2.3.1"
+  }
 }
diff --git a/crates/userfaultfd/METADATA b/crates/userfaultfd/METADATA
index 08e2200..7c5f394 100644
--- a/crates/userfaultfd/METADATA
+++ b/crates/userfaultfd/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/userfaultfd
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "userfaultfd"
 description: "Rust bindings for the Linux userfaultfd functionality"
 third_party {
+  version: "0.7.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
diff --git a/crates/utf-8/METADATA b/crates/utf-8/METADATA
index 44f05e1..bec7999 100644
--- a/crates/utf-8/METADATA
+++ b/crates/utf-8/METADATA
@@ -8,4 +8,10 @@
     month: 6
     day: 2
   }
+  homepage: "https://crates.io/crates/utf-8"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/utf-8/utf-8-0.7.6.crate"
+    version: "0.7.6"
+  }
 }
diff --git a/crates/vhost-user-backend/METADATA b/crates/vhost-user-backend/METADATA
index 76caad4..4615151 100644
--- a/crates/vhost-user-backend/METADATA
+++ b/crates/vhost-user-backend/METADATA
@@ -1,14 +1,6 @@
 name: "vhost-user-backend"
 description: "A framework to build vhost-user backend service daemon"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/vhost-user-backend"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/vhost-user-backend/vhost-user-backend-0.10.1.crate"
-  }
   version: "0.10.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 8
     day: 23
   }
+  homepage: "https://crates.io/crates/vhost-user-backend"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/vhost-user-backend/vhost-user-backend-0.10.1.crate"
+    version: "0.10.1"
+  }
 }
diff --git a/crates/vhost/METADATA b/crates/vhost/METADATA
index 82ff82b..66b8c7f 100644
--- a/crates/vhost/METADATA
+++ b/crates/vhost/METADATA
@@ -1,14 +1,6 @@
 name: "vhost"
 description: "a pure rust library for vdpa, vhost and vhost-user"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/vhost"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/vhost/vhost-0.8.1.crate"
-  }
   version: "0.8.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 9
     day: 6
   }
+  homepage: "https://crates.io/crates/vhost"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/vhost/vhost-0.8.1.crate"
+    version: "0.8.1"
+  }
 }
diff --git a/crates/virtio-bindings/METADATA b/crates/virtio-bindings/METADATA
index 05aa5a4..c37f983 100644
--- a/crates/virtio-bindings/METADATA
+++ b/crates/virtio-bindings/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/virtio-bindings
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "virtio-bindings"
 description: "Rust FFI bindings to virtio generated using bindgen."
 third_party {
+  version: "0.2.2"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 6
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/virtio-bindings/virtio-bindings-0.2.2.crate"
-    version: "0.2.1"
-  }
+  homepage: "https://crates.io/crates/virtio-bindings"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/virtio-bindings/virtio-bindings-0.2.1.crate"
+    value: "https://static.crates.io/crates/virtio-bindings/virtio-bindings-0.2.2.crate"
     version: "0.2.2"
   }
 }
diff --git a/crates/virtio-drivers/METADATA b/crates/virtio-drivers/METADATA
index 0cb5da9..3c392a3 100644
--- a/crates/virtio-drivers/METADATA
+++ b/crates/virtio-drivers/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/virtio-drivers
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "virtio-drivers"
 description: "VirtIO guest drivers."
 third_party {
+  version: "0.7.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/virtio-queue/METADATA b/crates/virtio-queue/METADATA
index bce4f7a..e7b2c6a 100644
--- a/crates/virtio-queue/METADATA
+++ b/crates/virtio-queue/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/virtio-queue
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "virtio-queue"
 description: "virtio queue implementation"
 third_party {
+  version: "0.11.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 6
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/virtio-queue/virtio-queue-0.11.0.crate"
-    version: "0.9.0"
-  }
+  homepage: "https://crates.io/crates/virtio-queue"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/virtio-queue/virtio-queue-0.9.0.crate"
+    value: "https://static.crates.io/crates/virtio-queue/virtio-queue-0.11.0.crate"
     version: "0.11.0"
   }
 }
diff --git a/crates/virtio-vsock/METADATA b/crates/virtio-vsock/METADATA
index 1864b1e..c4365f5 100644
--- a/crates/virtio-vsock/METADATA
+++ b/crates/virtio-vsock/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/virtio-vsock
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "virtio-vsock"
 description: "virtio vsock device implementation"
 third_party {
+  version: "0.5.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 6
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/virtio-vsock/virtio-vsock-0.5.0.crate"
-    version: "0.3.1"
-  }
+  homepage: "https://crates.io/crates/virtio-vsock"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/virtio-vsock/virtio-vsock-0.3.1.crate"
+    value: "https://static.crates.io/crates/virtio-vsock/virtio-vsock-0.5.0.crate"
     version: "0.5.0"
   }
 }
diff --git a/crates/vm-memory/METADATA b/crates/vm-memory/METADATA
index 19eb745..d76b1ba 100644
--- a/crates/vm-memory/METADATA
+++ b/crates/vm-memory/METADATA
@@ -1,14 +1,6 @@
 name: "vm-memory"
 description: "Safe abstractions for accessing the VM physical memory"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/vm-memory"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/vm-memory/vm-memory-0.12.2.crate"
-  }
   version: "0.12.2"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 9
     day: 6
   }
+  homepage: "https://crates.io/crates/vm-memory"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/vm-memory/vm-memory-0.12.2.crate"
+    version: "0.12.2"
+  }
 }
diff --git a/crates/vmm-sys-util/METADATA b/crates/vmm-sys-util/METADATA
index 4eb3799..5c96738 100644
--- a/crates/vmm-sys-util/METADATA
+++ b/crates/vmm-sys-util/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/vmm-sys-util
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "vmm-sys-util"
 description: "A system utility set"
 third_party {
+  version: "0.12.1"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 6
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/vmm-sys-util/vmm-sys-util-0.12.1.crate"
-    version: "0.11.1"
-  }
+  homepage: "https://crates.io/crates/vmm-sys-util"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/vmm-sys-util/vmm-sys-util-0.11.1.crate"
+    value: "https://static.crates.io/crates/vmm-sys-util/vmm-sys-util-0.12.1.crate"
     version: "0.12.1"
   }
 }
diff --git a/crates/vsock/METADATA b/crates/vsock/METADATA
index dd5ba03..2dd28f3 100644
--- a/crates/vsock/METADATA
+++ b/crates/vsock/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/vsock
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "vsock"
 description: "Virtio socket support for Rust"
 third_party {
+  version: "0.5.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/vsprintf/METADATA b/crates/vsprintf/METADATA
index 0dea670..5f7dcd5 100644
--- a/crates/vsprintf/METADATA
+++ b/crates/vsprintf/METADATA
@@ -1,15 +1,6 @@
 name: "vsprintf"
 description: "Rust bindings to the libc vsprintf function"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "vsprintf"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/vsprintf/vsprintf-2.0.0.crate"
-    primary_source: true
-  }
   version: "2.0.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 8
     day: 22
   }
+  homepage: "https://crates.io/crates/vsprintf"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/vsprintf/vsprintf-2.0.0.crate"
+    version: "2.0.0"
+  }
 }
diff --git a/crates/vulkano/METADATA b/crates/vulkano/METADATA
index 71c1b99..02beab5 100644
--- a/crates/vulkano/METADATA
+++ b/crates/vulkano/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/vulkano
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "vulkano"
 description: "Safe wrapper for the Vulkan graphics API"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/vulkano"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/vulkano/vulkano-0.33.0.crate"
-  }
   version: "0.33.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 8
     day: 2
   }
+  homepage: "https://crates.io/crates/vulkano"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/vulkano/vulkano-0.33.0.crate"
+    version: "0.33.0"
+  }
 }
diff --git a/crates/walkdir/METADATA b/crates/walkdir/METADATA
index bdc135f..b5b3f02 100644
--- a/crates/walkdir/METADATA
+++ b/crates/walkdir/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/walkdir
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "walkdir"
 description: "Recursively walk a directory."
 third_party {
+  version: "2.4.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/want/METADATA b/crates/want/METADATA
index 9ac579f..b301d93 100644
--- a/crates/want/METADATA
+++ b/crates/want/METADATA
@@ -1,15 +1,6 @@
 name: "want"
 description: "Detect when another Future wants a result."
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "want"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/want/want-0.3.1.crate"
-    primary_source: true
-  }
   version: "0.3.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -17,4 +8,10 @@
     month: 5
     day: 28
   }
+  homepage: "https://crates.io/crates/want"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/want/want-0.3.1.crate"
+    version: "0.3.1"
+  }
 }
diff --git a/crates/weak-table/METADATA b/crates/weak-table/METADATA
index 7d6b0be..ec1c144 100644
--- a/crates/weak-table/METADATA
+++ b/crates/weak-table/METADATA
@@ -8,4 +8,10 @@
     month: 3
     day: 1
   }
+  homepage: "https://crates.io/crates/weak-table"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/weak-table/weak-table-0.3.2.crate"
+    version: "0.3.2"
+  }
 }
diff --git a/crates/webpki/METADATA b/crates/webpki/METADATA
index 9156ed1..7d556bc 100644
--- a/crates/webpki/METADATA
+++ b/crates/webpki/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/webpki
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "webpki"
 description: "Web PKI X.509 Certificate Verification."
 third_party {
+  version: "0.22.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/which/METADATA b/crates/which/METADATA
index 66475c3..52050ed 100644
--- a/crates/which/METADATA
+++ b/crates/which/METADATA
@@ -8,4 +8,10 @@
     month: 2
     day: 17
   }
+  homepage: "https://crates.io/crates/which"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/which/which-4.4.0.crate"
+    version: "4.4.0"
+  }
 }
diff --git a/crates/winnow/METADATA b/crates/winnow/METADATA
index 9a3e52d..d0decfb 100644
--- a/crates/winnow/METADATA
+++ b/crates/winnow/METADATA
@@ -1,24 +1,17 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/winnow
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "winnow"
 description: "A byte-oriented, zero-copy, parser combinators library"
 third_party {
+  version: "0.5.37"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
     month: 2
     day: 6
   }
-  identifier {
-    type: "crates.io"
-    value: "https://static.crates.io/crates/winnow/winnow-0.5.37.crate"
-    version: "0.5.14"
-  }
+  homepage: "https://crates.io/crates/winnow"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/winnow/winnow-0.5.14.crate"
+    value: "https://static.crates.io/crates/winnow/winnow-0.5.37.crate"
     version: "0.5.37"
   }
 }
diff --git a/crates/x509-cert/METADATA b/crates/x509-cert/METADATA
index fb2e5f3..8e639d5 100644
--- a/crates/x509-cert/METADATA
+++ b/crates/x509-cert/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/x509-cert
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "x509-cert"
 description: "Pure Rust implementation of the X.509 Public Key Infrastructure Certificate format as described in RFC 5280."
 third_party {
+  version: "0.2.4"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
diff --git a/crates/xml-rs/METADATA b/crates/xml-rs/METADATA
index 629fe15..b9300e0 100644
--- a/crates/xml-rs/METADATA
+++ b/crates/xml-rs/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/xml-rs
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "xml-rs"
 description: "An XML library in pure Rust"
 third_party {
+  version: "0.8.19"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
diff --git a/crates/yaml-rust/METADATA b/crates/yaml-rust/METADATA
index aa47ce9..ab4bb14 100644
--- a/crates/yaml-rust/METADATA
+++ b/crates/yaml-rust/METADATA
@@ -1,20 +1,17 @@
 name: "yaml-rust"
 description: "The missing YAML 1.2 parser for rust"
 third_party {
-  identifier {
-    type: "crates.io"
-    value: "https://crates.io/crates/yaml-rust"
-  }
-  identifier {
-    type: "Archive"
-    value: "https://static.crates.io/crates/yaml-rust/yaml-rust-0.4.5.crate"
-  }
   version: "0.4.5"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 8
     day: 23
   }
+  homepage: "https://crates.io/crates/yaml-rust"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/yaml-rust/yaml-rust-0.4.5.crate"
+    version: "0.4.5"
+  }
 }
diff --git a/crates/zerocopy-derive/METADATA b/crates/zerocopy-derive/METADATA
index ab503dc..6708a1f 100644
--- a/crates/zerocopy-derive/METADATA
+++ b/crates/zerocopy-derive/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update external/rust/crates/zerocopy-derive
-# For more info, check https://cs.android.com/android/platform/superproject/main/+/main:tools/external_updater/README.md
-
 name: "zerocopy-derive"
 description: "Custom derive for traits from the zerocopy crate"
 third_party {
+  version: "0.7.35"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
diff --git a/crates/zip/METADATA b/crates/zip/METADATA
index 7248554..db92323 100644
--- a/crates/zip/METADATA
+++ b/crates/zip/METADATA
@@ -1,10 +1,7 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/zip
-# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
-
 name: "zip"
 description: "Library to support the reading and writing of zip files."
 third_party {
+  version: "0.6.6"
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
diff --git a/extra_versions/crates/bitflags/METADATA b/extra_versions/crates/bitflags/METADATA
index 0e660ff..1d13d8f 100644
--- a/extra_versions/crates/bitflags/METADATA
+++ b/extra_versions/crates/bitflags/METADATA
@@ -1,14 +1,6 @@
 name: "bitflags"
 description: "A macro to generate structures which behave like bitflags."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/bitflags"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate"
-  }
   version: "1.3.2"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 9
     day: 22
   }
+  homepage: "https://crates.io/crates/bitflags"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate"
+    version: "1.3.2"
+  }
 }
diff --git a/extra_versions/crates/clap/METADATA b/extra_versions/crates/clap/METADATA
index cb02825..1d939eb 100644
--- a/extra_versions/crates/clap/METADATA
+++ b/extra_versions/crates/clap/METADATA
@@ -1,20 +1,17 @@
 name: "clap"
 description: "A simple to use, efficient, and full-featured Command Line Argument Parser"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/clap"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/clap/clap-3.2.23.crate"
-  }
   version: "3.2.23"
-  # Dual-licensed, using the least restrictive per go/thirdpartylicenses#same.
   license_type: NOTICE
   last_upgrade_date {
     year: 2023
     month: 3
     day: 6
   }
+  homepage: "https://crates.io/crates/clap"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/clap/clap-3.2.23.crate"
+    version: "3.2.23"
+  }
 }
diff --git a/extra_versions/crates/jni/METADATA b/extra_versions/crates/jni/METADATA
index f891cf7..09bfbfd 100644
--- a/extra_versions/crates/jni/METADATA
+++ b/extra_versions/crates/jni/METADATA
@@ -1,18 +1,6 @@
-# This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update rust/crates/jni
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
-
 name: "jni"
 description: "Rust bindings to the JNI"
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/jni"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/jni/jni-0.20.0.crate"
-  }
   version: "0.20.0"
   license_type: NOTICE
   last_upgrade_date {
@@ -20,4 +8,10 @@
     month: 1
     day: 19
   }
+  homepage: "https://crates.io/crates/jni"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/jni/jni-0.20.0.crate"
+    version: "0.20.0"
+  }
 }
diff --git a/extra_versions/crates/protobuf-codegen/METADATA b/extra_versions/crates/protobuf-codegen/METADATA
index 4593845..4cc457c 100644
--- a/extra_versions/crates/protobuf-codegen/METADATA
+++ b/extra_versions/crates/protobuf-codegen/METADATA
@@ -1,14 +1,6 @@
 name: "protobuf-codegen"
 description: "Code generator for rust-protobuf.  Includes a library and `protoc-gen-rust` binary.  See `protoc-rust` and `protobuf-codegen-pure` crates."
 third_party {
-  url {
-    type: HOMEPAGE
-    value: "https://crates.io/crates/protobuf-codegen"
-  }
-  url {
-    type: ARCHIVE
-    value: "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.27.1.crate"
-  }
   version: "2.27.1"
   license_type: NOTICE
   last_upgrade_date {
@@ -16,4 +8,10 @@
     month: 3
     day: 1
   }
+  homepage: "https://crates.io/crates/protobuf-codegen"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.27.1.crate"
+    version: "2.27.1"
+  }
 }
diff --git a/extra_versions/crates/protobuf/METADATA b/extra_versions/crates/protobuf/METADATA
index 9c36cf2..dd05a6e 100644
--- a/extra_versions/crates/protobuf/METADATA
+++ b/extra_versions/crates/protobuf/METADATA
@@ -8,4 +8,10 @@
     month: 3
     day: 1
   }
+  homepage: "https://crates.io/crates/protobuf"
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/protobuf/protobuf-2.27.1.crate"
+    version: "2.27.1"
+  }
 }