Snap for 8570526 from 7ac143a3496001b764a3e0e04f2eb1e15af18538 to mainline-media-swcodec-release

Change-Id: Ie193031abf5ef02acb305b40f5ba1ed7b6e6db43
diff --git a/Android.bp b/Android.bp
index 268bd8f..185de12 100644
--- a/Android.bp
+++ b/Android.bp
@@ -43,18 +43,28 @@
     name: "libandroid_log_sys",
     host_supported: true,
     crate_name: "android_log_sys",
+    cargo_env_compat: true,
+    cargo_pkg_version: "0.2.0",
     srcs: ["src/lib.rs"],
     edition: "2015",
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.bluetooth",
+        "com.android.compos",
+        "com.android.resolv",
+        "com.android.uwb",
+        "com.android.virt",
+    ],
+    vendor_available: true,
+    min_sdk_version: "29",
     target: {
         linux_glibc: {
             // liblog is not added as a dependency for linux_glibc target
             enabled: false,
         },
+        linux_musl: {
+            // liblog is not added as a dependency for linux_musl target
+            enabled: false,
+        },
     },
-    apex_available: [
-        "//apex_available:platform",
-        "com.android.resolv",
-        "com.android.virt",
-    ],
-    min_sdk_version: "29",
 }
diff --git a/TEST_MAPPING b/TEST_MAPPING
index dabccd6..619d83c 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -1,8 +1,84 @@
-// Generated by cargo2android.py for tests in Android.bp
+// Generated by update_crate_tests.py for tests that depend on this crate.
 {
+  "imports": [
+    {
+      "path": "external/rust/crates/android_logger"
+    }
+  ],
   "presubmit": [
     {
-      "name": "android_logger_device_test_src_lib"
+      "name": "ZipFuseTest"
+    },
+    {
+      "name": "authfs_device_test_src_lib"
+    },
+    {
+      "name": "doh_unit_test"
+    },
+    {
+      "name": "keystore2_selinux_concurrency_test"
+    },
+    {
+      "name": "keystore2_selinux_test"
+    },
+    {
+      "name": "keystore2_test"
+    },
+    {
+      "name": "logger_device_unit_tests"
+    },
+    {
+      "name": "logger_test_config_log_level"
+    },
+    {
+      "name": "logger_test_default_init"
+    },
+    {
+      "name": "logger_test_env_log_level"
+    },
+    {
+      "name": "logger_test_multiple_init"
+    },
+    {
+      "name": "virtualizationservice_device_test"
+    }
+  ],
+  "presubmit-rust": [
+    {
+      "name": "ZipFuseTest"
+    },
+    {
+      "name": "authfs_device_test_src_lib"
+    },
+    {
+      "name": "doh_unit_test"
+    },
+    {
+      "name": "keystore2_selinux_concurrency_test"
+    },
+    {
+      "name": "keystore2_selinux_test"
+    },
+    {
+      "name": "keystore2_test"
+    },
+    {
+      "name": "logger_device_unit_tests"
+    },
+    {
+      "name": "logger_test_config_log_level"
+    },
+    {
+      "name": "logger_test_default_init"
+    },
+    {
+      "name": "logger_test_env_log_level"
+    },
+    {
+      "name": "logger_test_multiple_init"
+    },
+    {
+      "name": "virtualizationservice_device_test"
     }
   ]
 }
diff --git a/cargo2android.json b/cargo2android.json
index 80540e9..f07ebe4 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -1,12 +1,16 @@
 {
+  "add-module-block": "cargo2android_glibc.bp",
   "apex-available": [
     "//apex_available:platform",
+    "com.android.bluetooth",
+    "com.android.compos",
     "com.android.resolv",
+    "com.android.uwb",
     "com.android.virt"
   ],
-  "min_sdk_version": "29",
   "dependencies": true,
   "device": true,
-  "patch": "patches/Android.bp.patch",
-  "run": true
-}
\ No newline at end of file
+  "min-sdk-version": "29",
+  "run": true,
+  "vendor-available": true
+}
diff --git a/cargo2android_glibc.bp b/cargo2android_glibc.bp
new file mode 100644
index 0000000..7d62503
--- /dev/null
+++ b/cargo2android_glibc.bp
@@ -0,0 +1,10 @@
+target: {
+    linux_glibc: {
+        // liblog is not added as a dependency for linux_glibc target
+        enabled: false,
+    },
+    linux_musl: {
+        // liblog is not added as a dependency for linux_musl target
+        enabled: false,
+    },
+}
diff --git a/patches/0001-Add-support-for-selecting-log-buffers.patch b/patches/0001-Add-support-for-selecting-log-buffers.patch
new file mode 100644
index 0000000..f56fa6d
--- /dev/null
+++ b/patches/0001-Add-support-for-selecting-log-buffers.patch
@@ -0,0 +1,33 @@
+From fb544f370ca1ae5b5c9de3a0c336ad9986537443 Mon Sep 17 00:00:00 2001
+From: Matthew Maurer <mmaurer@google.com>
+Date: Thu, 24 Feb 2022 13:41:53 -0800
+Subject: [PATCH] Add support for selecting log buffers
+
+While `__android_log_write_log_message` can select a target log buffer,
+it did not exist before API version 30. To allow selecting a log buffer
+for earlier APIs, we add a signature for `__android_log_buf_write`.
+
+Change-Id: Ie933a9b00436a626bd200242047d646c564e9e13
+---
+ src/lib.rs | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/lib.rs b/src/lib.rs
+index eba5b19..b648ed5 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -66,6 +66,11 @@ extern "C" {
+                                tag: *const c_char,
+                                text: *const c_char)
+                                -> c_int;
++    pub fn __android_log_buf_write(bufID: c_int,
++                                   prio: c_int,
++                                   tag: *const c_char,
++                                   text: *const c_char)
++                                   -> c_int;
+     pub fn __android_log_print(prio: c_int,
+                                tag: *const c_char,
+                                fmt: *const c_char,
+-- 
+2.35.1.574.g5d30c73bfb-goog
+
diff --git a/patches/Android.bp.patch b/patches/Android.bp.patch
deleted file mode 100644
index 988834c..0000000
--- a/patches/Android.bp.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/Android.bp
-+++ b/Android.bp
-@@ -45,6 +45,12 @@ rust_library {
-     crate_name: "android_log_sys",
-     srcs: ["src/lib.rs"],
-     edition: "2015",
-+    target: {
-+        linux_glibc: {
-+            // liblog is not added as a dependency for linux_glibc target
-+            enabled: false,
-+        },
-+    },
-     apex_available: [
-         "//apex_available:platform",
-         "com.android.resolv",
diff --git a/src/lib.rs b/src/lib.rs
index eba5b19..b648ed5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -66,6 +66,11 @@
                                tag: *const c_char,
                                text: *const c_char)
                                -> c_int;
+    pub fn __android_log_buf_write(bufID: c_int,
+                                   prio: c_int,
+                                   tag: *const c_char,
+                                   text: *const c_char)
+                                   -> c_int;
     pub fn __android_log_print(prio: c_int,
                                tag: *const c_char,
                                fmt: *const c_char,