Merge "Add privacy level for HAL traces"
diff --git a/st21nfc/adaptation/android_logmsg.cpp b/st21nfc/adaptation/android_logmsg.cpp
index 997e17c..f377d00 100644
--- a/st21nfc/adaptation/android_logmsg.cpp
+++ b/st21nfc/adaptation/android_logmsg.cpp
@@ -57,13 +57,27 @@
char line[100];
size_t i, k;
bool first_line = true;
+ bool privacy = false;
+
+ if (hal_trace_level & STNFC_TRACE_FLAG_PRIVACY) {
+ if ((length > 3) &&
+ // DATA message
+ (((d[0] & 0xE0) == 0) ||
+ // routing table contains the AIDs
+ ((d[0] == 0x21) && (d[1] == 0x01)) ||
+ // NTF showing which AID was selected
+ ((d[0] == 0x61) && (d[1] == 0x09)))) {
+ // We hide the payload for GSMA TS27 15.9.3.2.*
+ privacy = true;
+ }
+ }
line[0] = 0;
if (length == 0) {
STLOG_HAL_D("%s", title);
return;
}
- for (i = 0, k = 0; i < length; i++, k++) {
+ for (i = 0, k = 0; i < (privacy ? 3 : length); i++, k++) {
if (k > 31) {
k = 0;
if (first_line == true) {
@@ -83,6 +97,10 @@
sprintf(&line[k * 3], "%02x ", d[i]);
}
+ if (privacy) {
+ sprintf(&line[k * 3], "(hidden)");
+ }
+
if (first_line == true) {
if (title[0] == 'R') {
STLOG_HAL_D("Rx %s\n", line);
diff --git a/st21nfc/hal_st21nfc.cc b/st21nfc/hal_st21nfc.cc
index b6fd45a..d739acb 100644
--- a/st21nfc/hal_st21nfc.cc
+++ b/st21nfc/hal_st21nfc.cc
@@ -43,7 +43,7 @@
nfc_stack_callback_t* p_cback_unwrap;
} st21nfc_dev_t;
-const char* halVersion = "ST21NFC HAL1.1 Version 3.1.12";
+const char* halVersion = "ST21NFC HAL1.1 Version 3.1.13";
uint8_t cmd_set_nfc_mode_enable[] = {0x2f, 0x02, 0x02, 0x02, 0x01};
uint8_t hal_is_closed = 1;
diff --git a/st21nfc/include/android_logmsg.h b/st21nfc/include/android_logmsg.h
index 342e8d5..11c2819 100644
--- a/st21nfc/include/android_logmsg.h
+++ b/st21nfc/include/android_logmsg.h
@@ -52,26 +52,30 @@
#define STNFC_TRACE_LEVEL_WARNING 0x02
#define STNFC_TRACE_LEVEL_DEBUG 0x03
#define STNFC_TRACE_LEVEL_VERBOSE 0x04
+#define STNFC_TRACE_LEVEL_MASK 0x0F
+#define STNFC_TRACE_FLAG_PRIVACY 0x10
#define STLOG_HAL_V(...) \
{ \
- if (hal_trace_level >= STNFC_TRACE_LEVEL_VERBOSE) \
+ if ((hal_trace_level & STNFC_TRACE_LEVEL_MASK) >= \
+ STNFC_TRACE_LEVEL_VERBOSE) \
LOG_PRI(ANDROID_LOG_DEBUG, HAL_LOG_TAG, __VA_ARGS__); \
}
-#define STLOG_HAL_D(...) \
- { \
- if (hal_trace_level >= STNFC_TRACE_LEVEL_DEBUG) \
- LOG_PRI(ANDROID_LOG_DEBUG, HAL_LOG_TAG, __VA_ARGS__); \
+#define STLOG_HAL_D(...) \
+ { \
+ if ((hal_trace_level & STNFC_TRACE_LEVEL_MASK) >= STNFC_TRACE_LEVEL_DEBUG) \
+ LOG_PRI(ANDROID_LOG_DEBUG, HAL_LOG_TAG, __VA_ARGS__); \
}
#define STLOG_HAL_W(...) \
{ \
- if (hal_trace_level >= STNFC_TRACE_LEVEL_WARNING) \
+ if ((hal_trace_level & STNFC_TRACE_LEVEL_MASK) >= \
+ STNFC_TRACE_LEVEL_WARNING) \
LOG_PRI(ANDROID_LOG_WARN, HAL_LOG_TAG, __VA_ARGS__); \
}
-#define STLOG_HAL_E(...) \
- { \
- if (hal_trace_level >= STNFC_TRACE_LEVEL_ERROR) \
- LOG_PRI(ANDROID_LOG_ERROR, HAL_LOG_TAG, __VA_ARGS__); \
+#define STLOG_HAL_E(...) \
+ { \
+ if ((hal_trace_level & STNFC_TRACE_LEVEL_MASK) >= STNFC_TRACE_LEVEL_ERROR) \
+ LOG_PRI(ANDROID_LOG_ERROR, HAL_LOG_TAG, __VA_ARGS__); \
}
/*******************************************************************************
**