Snap for 8347268 from 391daa57cf17e596315e926d98307c277288703b to mainline-go-conscrypt-release
Change-Id: I06106202012de78f049a0f8d44f304afaa371b1f
diff --git a/Android.bp b/Android.bp
index 056c310..d156d87 100644
--- a/Android.bp
+++ b/Android.bp
@@ -40,10 +40,8 @@
}
rust_test {
- name: "android_logger_test_src_lib",
+ name: "android_logger_device_test_src_lib",
crate_name: "android_logger",
- cargo_env_compat: true,
- cargo_pkg_version: "0.10.1",
srcs: ["src/lib.rs"],
test_suites: ["general-tests"],
auto_gen_config: true,
@@ -61,10 +59,8 @@
}
rust_defaults {
- name: "android_logger_test_defaults",
+ name: "android_logger_defaults",
crate_name: "android_logger",
- cargo_env_compat: true,
- cargo_pkg_version: "0.10.1",
test_suites: ["general-tests"],
auto_gen_config: true,
edition: "2015",
@@ -82,28 +78,26 @@
}
rust_test {
- name: "android_logger_test_tests_config_log_level",
- defaults: ["android_logger_test_defaults"],
+ name: "android_logger_device_test_tests_config_log_level",
+ defaults: ["android_logger_defaults"],
srcs: ["tests/config_log_level.rs"],
}
rust_test {
- name: "android_logger_test_tests_default_init",
- defaults: ["android_logger_test_defaults"],
+ name: "android_logger_device_test_tests_default_init",
+ defaults: ["android_logger_defaults"],
srcs: ["tests/default_init.rs"],
}
rust_test {
- name: "android_logger_test_tests_multiple_init",
- defaults: ["android_logger_test_defaults"],
+ name: "android_logger_device_test_tests_multiple_init",
+ defaults: ["android_logger_defaults"],
srcs: ["tests/multiple_init.rs"],
}
rust_library {
name: "libandroid_logger",
crate_name: "android_logger",
- cargo_env_compat: true,
- cargo_pkg_version: "0.10.1",
srcs: ["src/lib.rs"],
edition: "2015",
features: [
@@ -118,12 +112,19 @@
],
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",
}
+
+// dependent_library ["feature_list"]
+// aho-corasick-0.7.15 "default,std"
+// android_log-sys-0.2.0
+// cfg-if-1.0.0
+// env_logger-0.8.3 "regex"
+// lazy_static-1.4.0
+// log-0.4.14 "std"
+// memchr-2.3.4 "default,std,use_std"
+// regex-1.4.6 "aho-corasick,memchr,perf,perf-cache,perf-dfa,perf-inline,perf-literal,std"
+// regex-syntax-0.6.23
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 526e77a..813e886 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -2,96 +2,40 @@
{
"presubmit": [
{
- "name": "android_logger_test_src_lib"
+ "name": "android_logger_device_test_src_lib"
},
{
- "name": "android_logger_test_tests_config_log_level"
+ "name": "android_logger_device_test_tests_config_log_level"
},
{
- "name": "android_logger_test_tests_default_init"
+ "name": "android_logger_device_test_tests_default_init"
},
{
- "name": "android_logger_test_tests_multiple_init"
- },
- {
- "name": "authfs_device_test_src_lib"
+ "name": "android_logger_device_test_tests_multiple_init"
},
{
"name": "doh_unit_test"
},
{
- "name": "keystore2_selinux_concurrency_test"
- },
- {
"name": "keystore2_selinux_test"
},
{
"name": "keystore2_test"
},
{
- "name": "logger_device_unit_tests"
+ "name": "logger_device_test_config_log_level"
},
{
- "name": "logger_test_config_log_level"
+ "name": "logger_device_test_default_init"
},
{
- "name": "logger_test_default_init"
+ "name": "logger_device_test_env_log_level"
},
{
- "name": "logger_test_env_log_level"
- },
- {
- "name": "logger_test_multiple_init"
- },
- {
- "name": "virtualizationservice_device_test"
- }
- ],
- "presubmit-rust": [
- {
- "name": "android_logger_test_src_lib"
- },
- {
- "name": "android_logger_test_tests_config_log_level"
- },
- {
- "name": "android_logger_test_tests_default_init"
- },
- {
- "name": "android_logger_test_tests_multiple_init"
- },
- {
- "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_test_multiple_init"
},
{
"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 18ba06d..d02b87d 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -1,17 +1,13 @@
{
"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,
- "min-sdk-version": "29",
"no-host": true,
"run": true,
- "tests": true,
- "vendor-available": true
-}
+ "tests": true
+}
\ No newline at end of file
diff --git a/patches/0001-Support-selecting-target-log-buffer.patch b/patches/0001-Support-selecting-target-log-buffer.patch
deleted file mode 100644
index e5fc33b..0000000
--- a/patches/0001-Support-selecting-target-log-buffer.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From 2bc2650d0a7a11a74670a6583b16aa6714d7c993 Mon Sep 17 00:00:00 2001
-From: Matthew Maurer <[email protected]>
-Date: Thu, 17 Feb 2022 20:23:37 +0000
-Subject: [PATCH] Support selecting target log buffer
-
-Android has several different log buffers. Previously, this library
-would only support logging to the "Main" log. Now, it logs to the
-default log (which is Main for most processes), with the option to
-override which log buffer you send messages to in the config.
-
-Change-Id: I72779e62bd963586e3dfad431cd82c75daf04d92
----
- src/lib.rs | 71 ++++++++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 58 insertions(+), 13 deletions(-)
-
-diff --git a/src/lib.rs b/src/lib.rs
-index 11a127e..d21be3f 100644
---- a/src/lib.rs
-+++ b/src/lib.rs
-@@ -87,21 +87,49 @@ pub use env_logger::fmt::Formatter;
-
- pub(crate) type FormatFn = Box<dyn Fn(&mut dyn fmt::Write, &Record) -> fmt::Result + Sync + Send>;
-
-+#[derive(Copy, Clone, Eq, PartialEq, Debug)]
-+pub enum LogId {
-+ Main,
-+ Radio,
-+ Events,
-+ System,
-+ Crash
-+}
-+
-+impl LogId {
-+ #[cfg(target_os = "android")]
-+ fn to_native(log_id: Option<Self>) -> log_ffi::log_id_t {
-+ match log_id {
-+ Some(LogId::Main) => log_ffi::log_id_t::MAIN,
-+ Some(LogId::Radio) => log_ffi::log_id_t::RADIO,
-+ Some(LogId::Events) => log_ffi::log_id_t::EVENTS,
-+ Some(LogId::System) => log_ffi::log_id_t::SYSTEM,
-+ Some(LogId::Crash) => log_ffi::log_id_t::CRASH,
-+ None => log_ffi::log_id_t::DEFAULT,
-+ }
-+ }
-+}
-+
- /// Output log to android system.
- #[cfg(target_os = "android")]
--fn android_log(prio: log_ffi::LogPriority, tag: &CStr, msg: &CStr) {
-+fn android_log(log_id: log_ffi::log_id_t, prio: log_ffi::LogPriority, tag: &CStr, msg: &CStr) {
-+ let mut message = log_ffi::__android_log_message {
-+ struct_size: std::mem::size_of::<log_ffi::__android_log_message>(),
-+ buffer_id: log_id as i32,
-+ priority: prio as i32,
-+ tag: tag.as_ptr() as *const log_ffi::c_char,
-+ file: ptr::null(),
-+ line: 0,
-+ message: msg.as_ptr() as *const log_ffi::c_char,
-+ };
- unsafe {
-- log_ffi::__android_log_write(
-- prio as log_ffi::c_int,
-- tag.as_ptr() as *const log_ffi::c_char,
-- msg.as_ptr() as *const log_ffi::c_char,
-- )
-+ log_ffi::__android_log_write_log_message(&mut message as *mut _);
- };
- }
-
- /// Dummy output placeholder for tests.
- #[cfg(not(target_os = "android"))]
--fn android_log(_priority: Level, _tag: &CStr, _msg: &CStr) {}
-+fn android_log(_log_id: Option<LogId>, _priority: Level, _tag: &CStr, _msg: &CStr) {}
-
- /// Underlying android logger backend
- pub struct AndroidLogger {
-@@ -164,7 +192,7 @@ impl Log for AndroidLogger {
-
- // message must not exceed LOGGING_MSG_MAX_LEN
- // therefore split log message into multiple log calls
-- let mut writer = PlatformLogWriter::new(record.level(), tag);
-+ let mut writer = PlatformLogWriter::new(config.log_id, record.level(), tag);
-
- // If a custom tag is used, add the module path to the message.
- // Use PlatformLogWriter to output chunks if they exceed max size.
-@@ -208,6 +236,7 @@ impl AndroidLogger {
- /// Filter for android logger.
- pub struct Config {
- log_level: Option<Level>,
-+ log_id: Option<LogId>,
- filter: Option<env_logger::filter::Filter>,
- tag: Option<CString>,
- custom_format: Option<FormatFn>,
-@@ -217,6 +246,7 @@ impl Default for Config {
- fn default() -> Self {
- Config {
- log_level: None,
-+ log_id: None,
- filter: None,
- tag: None,
- custom_format: None,
-@@ -234,6 +264,15 @@ impl Config {
- self
- }
-
-+ /// Change which log buffer is used
-+ ///
-+ /// By default, logs are sent to the `Main` log. Other logging buffers may only be accessible
-+ /// to certain processes.
-+ pub fn with_log_id(mut self, log_id: LogId) -> Self {
-+ self.log_id = Some(log_id);
-+ self
-+ }
-+
- fn filter_matches(&self, record: &Record) -> bool {
- if let Some(ref filter) = self.filter {
- filter.matches(&record)
-@@ -273,6 +312,8 @@ impl Config {
- struct PlatformLogWriter<'a> {
- #[cfg(target_os = "android")] priority: LogPriority,
- #[cfg(not(target_os = "android"))] priority: Level,
-+ #[cfg(target_os = "android")] log_id: log_ffi::log_id_t,
-+ #[cfg(not(target_os = "android"))] log_id: Option<LogId>,
- len: usize,
- last_newline_index: usize,
- tag: &'a CStr,
-@@ -281,7 +322,7 @@ struct PlatformLogWriter<'a> {
-
- impl<'a> PlatformLogWriter<'a> {
- #[cfg(target_os = "android")]
-- pub fn new(level: Level, tag: &CStr) -> PlatformLogWriter {
-+ pub fn new(log_id: Option<LogId>, level: Level, tag: &CStr) -> PlatformLogWriter {
- #[allow(deprecated)] // created an issue #35 for this
- PlatformLogWriter {
- priority: match level {
-@@ -291,6 +332,7 @@ impl<'a> PlatformLogWriter<'a> {
- Level::Error => LogPriority::ERROR,
- Level::Trace => LogPriority::VERBOSE,
- },
-+ log_id: LogId::to_native(log_id),
- len: 0,
- last_newline_index: 0,
- tag,
-@@ -299,10 +341,11 @@ impl<'a> PlatformLogWriter<'a> {
- }
-
- #[cfg(not(target_os = "android"))]
-- pub fn new(level: Level, tag: &CStr) -> PlatformLogWriter {
-+ pub fn new(log_id: Option<LogId>, level: Level, tag: &CStr) -> PlatformLogWriter {
- #[allow(deprecated)] // created an issue #35 for this
- PlatformLogWriter {
- priority: level,
-+ log_id,
- len: 0,
- last_newline_index: 0,
- tag,
-@@ -358,7 +401,7 @@ impl<'a> PlatformLogWriter<'a> {
- });
-
- let msg: &CStr = unsafe { CStr::from_ptr(mem::transmute(self.buffer.as_ptr())) };
-- android_log(self.priority, self.tag, msg);
-+ android_log(self.log_id, self.priority, self.tag, msg);
-
- *unsafe { self.buffer.get_unchecked_mut(len) } = last_byte;
- }
-@@ -458,9 +501,11 @@ mod tests {
- // Filter is checked in config_filter_match below.
- let config = Config::default()
- .with_min_level(Level::Trace)
-+ .with_log_id(LogId::System)
- .with_tag("my_app");
-
- assert_eq!(config.log_level, Some(Level::Trace));
-+ assert_eq!(config.log_id, Some(LogId::System));
- assert_eq!(config.tag, Some(CString::new("my_app").unwrap()));
- }
-
-@@ -531,7 +576,7 @@ mod tests {
- fn platform_log_writer_init_values() {
- let tag = CStr::from_bytes_with_nul(b"tag\0").unwrap();
-
-- let writer = PlatformLogWriter::new(Level::Warn, &tag);
-+ let writer = PlatformLogWriter::new(None, Level::Warn, &tag);
-
- assert_eq!(writer.tag, tag);
- // Android uses LogPriority instead, which doesn't implement equality checks
-@@ -630,6 +675,6 @@ mod tests {
- }
-
- fn get_tag_writer() -> PlatformLogWriter<'static> {
-- PlatformLogWriter::new(Level::Warn, &CStr::from_bytes_with_nul(b"tag\0").unwrap())
-+ PlatformLogWriter::new(None, Level::Warn, &CStr::from_bytes_with_nul(b"tag\0").unwrap())
- }
- }
---
-2.35.1.265.g69c8d7142f-goog
-
diff --git a/patches/0002-Use-older-API-to-avoid-requiring-API-v30.patch b/patches/0002-Use-older-API-to-avoid-requiring-API-v30.patch
deleted file mode 100644
index 721e9eb..0000000
--- a/patches/0002-Use-older-API-to-avoid-requiring-API-v30.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ec84856e0f0bc5a307529122bfed3d94d2ef4011 Mon Sep 17 00:00:00 2001
-From: Matthew Maurer <[email protected]>
-Date: Thu, 24 Feb 2022 14:07:03 -0800
-Subject: [PATCH] Use older API to avoid requiring API v30
-
-Test: Check that keystore still outputs logs to system
-Bug: 221185310
-Change-Id: I25174f1617557e270db70cd432cec78c037c6b75
----
- src/lib.rs | 14 ++++----------
- 1 file changed, 4 insertions(+), 10 deletions(-)
-
-diff --git a/src/lib.rs b/src/lib.rs
-index d21be3f..bc4fa61 100644
---- a/src/lib.rs
-+++ b/src/lib.rs
-@@ -113,17 +113,11 @@ impl LogId {
- /// Output log to android system.
- #[cfg(target_os = "android")]
- fn android_log(log_id: log_ffi::log_id_t, prio: log_ffi::LogPriority, tag: &CStr, msg: &CStr) {
-- let mut message = log_ffi::__android_log_message {
-- struct_size: std::mem::size_of::<log_ffi::__android_log_message>(),
-- buffer_id: log_id as i32,
-- priority: prio as i32,
-- tag: tag.as_ptr() as *const log_ffi::c_char,
-- file: ptr::null(),
-- line: 0,
-- message: msg.as_ptr() as *const log_ffi::c_char,
-- };
- unsafe {
-- log_ffi::__android_log_write_log_message(&mut message as *mut _);
-+ log_ffi::__android_log_buf_write(log_id as i32,
-+ prio as i32,
-+ tag.as_ptr() as *const log_ffi::c_char,
-+ msg.as_ptr() as *const log_ffi::c_char);
- };
- }
-
---
-2.35.1.574.g5d30c73bfb-goog
-
diff --git a/src/lib.rs b/src/lib.rs
index bc4fa61..11a127e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -87,43 +87,21 @@
pub(crate) type FormatFn = Box<dyn Fn(&mut dyn fmt::Write, &Record) -> fmt::Result + Sync + Send>;
-#[derive(Copy, Clone, Eq, PartialEq, Debug)]
-pub enum LogId {
- Main,
- Radio,
- Events,
- System,
- Crash
-}
-
-impl LogId {
- #[cfg(target_os = "android")]
- fn to_native(log_id: Option<Self>) -> log_ffi::log_id_t {
- match log_id {
- Some(LogId::Main) => log_ffi::log_id_t::MAIN,
- Some(LogId::Radio) => log_ffi::log_id_t::RADIO,
- Some(LogId::Events) => log_ffi::log_id_t::EVENTS,
- Some(LogId::System) => log_ffi::log_id_t::SYSTEM,
- Some(LogId::Crash) => log_ffi::log_id_t::CRASH,
- None => log_ffi::log_id_t::DEFAULT,
- }
- }
-}
-
/// Output log to android system.
#[cfg(target_os = "android")]
-fn android_log(log_id: log_ffi::log_id_t, prio: log_ffi::LogPriority, tag: &CStr, msg: &CStr) {
+fn android_log(prio: log_ffi::LogPriority, tag: &CStr, msg: &CStr) {
unsafe {
- log_ffi::__android_log_buf_write(log_id as i32,
- prio as i32,
- tag.as_ptr() as *const log_ffi::c_char,
- msg.as_ptr() as *const log_ffi::c_char);
+ log_ffi::__android_log_write(
+ prio as log_ffi::c_int,
+ tag.as_ptr() as *const log_ffi::c_char,
+ msg.as_ptr() as *const log_ffi::c_char,
+ )
};
}
/// Dummy output placeholder for tests.
#[cfg(not(target_os = "android"))]
-fn android_log(_log_id: Option<LogId>, _priority: Level, _tag: &CStr, _msg: &CStr) {}
+fn android_log(_priority: Level, _tag: &CStr, _msg: &CStr) {}
/// Underlying android logger backend
pub struct AndroidLogger {
@@ -186,7 +164,7 @@
// message must not exceed LOGGING_MSG_MAX_LEN
// therefore split log message into multiple log calls
- let mut writer = PlatformLogWriter::new(config.log_id, record.level(), tag);
+ let mut writer = PlatformLogWriter::new(record.level(), tag);
// If a custom tag is used, add the module path to the message.
// Use PlatformLogWriter to output chunks if they exceed max size.
@@ -230,7 +208,6 @@
/// Filter for android logger.
pub struct Config {
log_level: Option<Level>,
- log_id: Option<LogId>,
filter: Option<env_logger::filter::Filter>,
tag: Option<CString>,
custom_format: Option<FormatFn>,
@@ -240,7 +217,6 @@
fn default() -> Self {
Config {
log_level: None,
- log_id: None,
filter: None,
tag: None,
custom_format: None,
@@ -258,15 +234,6 @@
self
}
- /// Change which log buffer is used
- ///
- /// By default, logs are sent to the `Main` log. Other logging buffers may only be accessible
- /// to certain processes.
- pub fn with_log_id(mut self, log_id: LogId) -> Self {
- self.log_id = Some(log_id);
- self
- }
-
fn filter_matches(&self, record: &Record) -> bool {
if let Some(ref filter) = self.filter {
filter.matches(&record)
@@ -306,8 +273,6 @@
struct PlatformLogWriter<'a> {
#[cfg(target_os = "android")] priority: LogPriority,
#[cfg(not(target_os = "android"))] priority: Level,
- #[cfg(target_os = "android")] log_id: log_ffi::log_id_t,
- #[cfg(not(target_os = "android"))] log_id: Option<LogId>,
len: usize,
last_newline_index: usize,
tag: &'a CStr,
@@ -316,7 +281,7 @@
impl<'a> PlatformLogWriter<'a> {
#[cfg(target_os = "android")]
- pub fn new(log_id: Option<LogId>, level: Level, tag: &CStr) -> PlatformLogWriter {
+ pub fn new(level: Level, tag: &CStr) -> PlatformLogWriter {
#[allow(deprecated)] // created an issue #35 for this
PlatformLogWriter {
priority: match level {
@@ -326,7 +291,6 @@
Level::Error => LogPriority::ERROR,
Level::Trace => LogPriority::VERBOSE,
},
- log_id: LogId::to_native(log_id),
len: 0,
last_newline_index: 0,
tag,
@@ -335,11 +299,10 @@
}
#[cfg(not(target_os = "android"))]
- pub fn new(log_id: Option<LogId>, level: Level, tag: &CStr) -> PlatformLogWriter {
+ pub fn new(level: Level, tag: &CStr) -> PlatformLogWriter {
#[allow(deprecated)] // created an issue #35 for this
PlatformLogWriter {
priority: level,
- log_id,
len: 0,
last_newline_index: 0,
tag,
@@ -395,7 +358,7 @@
});
let msg: &CStr = unsafe { CStr::from_ptr(mem::transmute(self.buffer.as_ptr())) };
- android_log(self.log_id, self.priority, self.tag, msg);
+ android_log(self.priority, self.tag, msg);
*unsafe { self.buffer.get_unchecked_mut(len) } = last_byte;
}
@@ -495,11 +458,9 @@
// Filter is checked in config_filter_match below.
let config = Config::default()
.with_min_level(Level::Trace)
- .with_log_id(LogId::System)
.with_tag("my_app");
assert_eq!(config.log_level, Some(Level::Trace));
- assert_eq!(config.log_id, Some(LogId::System));
assert_eq!(config.tag, Some(CString::new("my_app").unwrap()));
}
@@ -570,7 +531,7 @@
fn platform_log_writer_init_values() {
let tag = CStr::from_bytes_with_nul(b"tag\0").unwrap();
- let writer = PlatformLogWriter::new(None, Level::Warn, &tag);
+ let writer = PlatformLogWriter::new(Level::Warn, &tag);
assert_eq!(writer.tag, tag);
// Android uses LogPriority instead, which doesn't implement equality checks
@@ -669,6 +630,6 @@
}
fn get_tag_writer() -> PlatformLogWriter<'static> {
- PlatformLogWriter::new(None, Level::Warn, &CStr::from_bytes_with_nul(b"tag\0").unwrap())
+ PlatformLogWriter::new(Level::Warn, &CStr::from_bytes_with_nul(b"tag\0").unwrap())
}
}