Create no_std builds of ciborium and dependencies

pvmfw, which is no_std (but with alloc) needs to be able to read &
write CBOR (for the DICE chain), so we need a no_std version of
ciborium.

Bug: 266172411
Test: atest MicrodroidTests
Change-Id: Ia8bae9fffd7c2b98a623153c02392a81adf24fe3
diff --git a/Android.bp b/Android.bp
index c8f737b..46dfd24 100644
--- a/Android.bp
+++ b/Android.bp
@@ -42,3 +42,23 @@
     product_available: true,
     vendor_available: true,
 }
+
+rust_library_rlib {
+    name: "libciborium_nostd",
+    crate_name: "ciborium",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.2.0",
+    srcs: ["src/lib.rs"],
+    edition: "2021",
+    prefer_rlib: true,
+    no_stdlibs: true,
+    rustlibs: [
+        "libciborium_io_nostd",
+        "libciborium_ll_nostd",
+        "libserde_nostd",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+}
diff --git a/cargo2android.json b/cargo2android.json
index e256313..07c27da 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -1,4 +1,5 @@
 {
+  "add-toplevel-block": "cargo2android_nostd.bp",
   "device": true,
   "run": true,
   "dependencies": true,
diff --git a/cargo2android_nostd.bp b/cargo2android_nostd.bp
new file mode 100644
index 0000000..1b35e95
--- /dev/null
+++ b/cargo2android_nostd.bp
@@ -0,0 +1,19 @@
+rust_library_rlib {
+    name: "libciborium_nostd",
+    crate_name: "ciborium",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.2.0",
+    srcs: ["src/lib.rs"],
+    edition: "2021",
+    prefer_rlib: true,
+    no_stdlibs: true,
+    rustlibs: [
+        "libciborium_io_nostd",
+        "libciborium_ll_nostd",
+        "libserde_nostd",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+}