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: I3d2a1f4185a6ec41ba8205f2306e37e6823998b6
diff --git a/Android.bp b/Android.bp
index 17c243e..156a5cc 100644
--- a/Android.bp
+++ b/Android.bp
@@ -37,3 +37,22 @@
     product_available: true,
     vendor_available: true,
 }
+
+rust_library_rlib {
+    name: "libciborium_io_nostd",
+    crate_name: "ciborium_io",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.2.0",
+    srcs: ["src/lib.rs"],
+    edition: "2021",
+    prefer_rlib: true,
+    no_stdlibs: true,
+    stdlibs: [
+        "libcompiler_builtins.rust_sysroot",
+        "libcore.rust_sysroot",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+}
diff --git a/cargo2android.json b/cargo2android.json
index 4a369d5..eb19901 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -1,4 +1,5 @@
 {
+  "add-toplevel-block": "cargo2android_nostd.bp",
   "device": true,
   "features": "alloc,std,",
   "run": true,
diff --git a/cargo2android_nostd.bp b/cargo2android_nostd.bp
new file mode 100644
index 0000000..6ec59a8
--- /dev/null
+++ b/cargo2android_nostd.bp
@@ -0,0 +1,18 @@
+rust_library_rlib {
+    name: "libciborium_io_nostd",
+    crate_name: "ciborium_io",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.2.0",
+    srcs: ["src/lib.rs"],
+    edition: "2021",
+    prefer_rlib: true,
+    no_stdlibs: true,
+    stdlibs: [
+        "libcompiler_builtins.rust_sysroot",
+        "libcore.rust_sysroot",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+}