diff --git a/liblog/include_vndk/log/log.h b/liblog/include_vndk/log/log.h
index 393b480..a79beec 100644
--- a/liblog/include_vndk/log/log.h
+++ b/liblog/include_vndk/log/log.h
@@ -1,11 +1,13 @@
 /*Special log.h file for VNDK linking modules*/
 
-#pragma once
+#ifndef _LIBS_LOG_LOG_H
+#define _LIBS_LOG_LOG_H
 
 #include <android/log.h>
 #include <log/log_id.h>
 #include <log/log_main.h>
 #include <log/log_radio.h>
+#include <log/log_read.h>
 #include <log/log_safetynet.h>
 #include <log/log_system.h>
 #include <log/log_time.h>
@@ -20,16 +22,4 @@
 #define LOG_TAG NULL
 #endif
 
-// Legacy dependencies...
-/* deal with possible sys/cdefs.h conflict with fcntl.h */
-#ifdef __unused
-#define __unused_defined __unused
-#undef __unused
-#endif
-
-#include <fcntl.h> /* Pick up O_* macros */
-
-/* restore definitions from above */
-#ifdef __unused_defined
-#define __unused __attribute__((__unused__))
-#endif
+#endif /*_LIBS_LOG_LOG_H*/
diff --git a/liblog/include_vndk/log/log_event_list.h b/liblog/include_vndk/log/log_event_list.h
index 81c879f..1f3dd37 100644
--- a/liblog/include_vndk/log/log_event_list.h
+++ b/liblog/include_vndk/log/log_event_list.h
@@ -16,7 +16,8 @@
 
 /* Special log_event_list.h file for VNDK linking modules */
 
-#pragma once
+#ifndef _LIBS_LOG_EVENT_LIST_H
+#define _LIBS_LOG_EVENT_LIST_H
 
 #include <stdint.h>
 
@@ -29,7 +30,10 @@
 /*
  * The opaque context used to manipulate lists of events.
  */
+#ifndef __android_log_context_defined
+#define __android_log_context_defined
 typedef struct android_log_context_internal* android_log_context;
+#endif
 
 /*
  * Creates a context associated with an event tag to write elements to
@@ -57,9 +61,18 @@
 /* NB: LOG_ID_EVENTS and LOG_ID_SECURITY only valid binary buffers */
 int android_log_write_list(android_log_context ctx, log_id_t id);
 
+/* Reset writer context */
+int android_log_reset(android_log_context ctx);
+
+/* Reset reader context */
+int android_log_parser_reset(android_log_context ctx,
+                             const char* msg, size_t len);
+
 /* Finished with reader or writer context */
 int android_log_destroy(android_log_context* ctx);
 
 #ifdef __cplusplus
 }
 #endif
+
+#endif /* _LIBS_LOG_EVENT_LIST_H */
diff --git a/liblog/include_vndk/log/log_id.h b/liblog/include_vndk/log/log_id.h
deleted file mode 100644
index 3c6df8b..0000000
--- a/liblog/include_vndk/log/log_id.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2005-2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <android/log.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Send a simple string to the log.
- */
-int __android_log_buf_write(int bufID, int prio, const char* tag, const char* text);
-int __android_log_buf_print(int bufID, int prio, const char* tag, const char* fmt, ...)
-    __attribute__((__format__(printf, 4, 5)));
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/liblog/include_vndk/log/log_id.h b/liblog/include_vndk/log/log_id.h
new file mode 120000
index 0000000..dce92b9
--- /dev/null
+++ b/liblog/include_vndk/log/log_id.h
@@ -0,0 +1 @@
+../../include/log/log_id.h
\ No newline at end of file
diff --git a/liblog/include_vndk/log/log_properties.h b/liblog/include_vndk/log/log_properties.h
new file mode 120000
index 0000000..bbec426
--- /dev/null
+++ b/liblog/include_vndk/log/log_properties.h
@@ -0,0 +1 @@
+../../include/log/log_properties.h
\ No newline at end of file
diff --git a/liblog/include_vndk/log/log_read.h b/liblog/include_vndk/log/log_read.h
new file mode 120000
index 0000000..01de8b9
--- /dev/null
+++ b/liblog/include_vndk/log/log_read.h
@@ -0,0 +1 @@
+../../include/log/log_read.h
\ No newline at end of file
diff --git a/liblog/include_vndk/log/log_time.h b/liblog/include_vndk/log/log_time.h
index 014af08..5a09959 100644
--- a/liblog/include_vndk/log/log_time.h
+++ b/liblog/include_vndk/log/log_time.h
@@ -14,7 +14,8 @@
  * limitations under the License.
  */
 
-#pragma once
+#ifndef _LIBS_LOG_LOG_TIME_H
+#define _LIBS_LOG_LOG_TIME_H
 
 #include <stdint.h>
 
@@ -29,6 +30,9 @@
 #define MS_PER_SEC 1000ULL
 #endif
 
+#ifndef __struct_log_time_defined
+#define __struct_log_time_defined
+
 #define LOG_TIME_SEC(t) ((t)->tv_sec)
 /* next power of two after NS_PER_SEC */
 #define LOG_TIME_NSEC(t) ((t)->tv_nsec & (UINT32_MAX >> 2))
@@ -37,3 +41,7 @@
   uint32_t tv_sec;
   uint32_t tv_nsec;
 } __attribute__((__packed__)) log_time;
+
+#endif
+
+#endif /* _LIBS_LOG_LOG_TIME_H */
diff --git a/liblog/liblog.map.txt b/liblog/liblog.map.txt
index ece8b75..ce4c53c 100644
--- a/liblog/liblog.map.txt
+++ b/liblog/liblog.map.txt
@@ -1,5 +1,7 @@
 LIBLOG {
   global:
+    android_name_to_log_id; # vndk
+    android_log_id_to_name; # vndk
     __android_log_assert;
     __android_log_buf_print;
     __android_log_buf_write;
@@ -12,15 +14,25 @@
 
 LIBLOG_L {
   global:
-    android_logger_list_alloc; # apex
-    android_logger_list_alloc_time; # apex
-    android_logger_list_free; # apex
-    android_logger_list_read; # apex
-    android_logger_open; # apex
+    android_logger_clear; # vndk
+    android_logger_get_id; # vndk
+    android_logger_get_log_readable_size; # vndk
+    android_logger_get_log_version; # vndk
+    android_logger_get_log_size; # vndk
+    android_logger_list_alloc; # apex vndk
+    android_logger_list_alloc_time; # apex vndk
+    android_logger_list_free; # apex vndk
+    android_logger_list_open; # vndk
+    android_logger_list_read; # apex vndk
+    android_logger_open; # apex vndk
+    android_logger_set_log_size; # vndk
 };
 
 LIBLOG_M {
   global:
+    android_logger_get_prune_list; # vndk
+    android_logger_set_prune_list; # vndk
+    android_logger_get_statistics; # vndk
     __android_log_error_write; # apex vndk
     __android_log_is_loggable;
     create_android_logger; # apex vndk
@@ -39,6 +51,7 @@
 LIBLOG_O {
   global:
     __android_log_is_loggable_len;
+    __android_log_is_debuggable; # vndk
 };
 
 LIBLOG_Q {
@@ -48,24 +61,21 @@
     __android_log_bwrite; # apex
     __android_log_close; # apex
     __android_log_security; # apex
+    android_log_reset; #vndk
+    android_log_parser_reset; #vndk
 };
 
 LIBLOG_PRIVATE {
   global:
-    __android_log_is_debuggable;
     __android_log_pmsg_file_read;
     __android_log_pmsg_file_write;
     __android_log_security_bswrite;
     __android_logger_get_buffer_size;
     __android_logger_property_get_bool;
-    android_name_to_log_id;
     android_openEventTagMap;
-    android_logger_list_open;
-    android_log_id_to_name;
     android_log_processBinaryLogBuffer;
     android_log_processLogBuffer;
     android_log_read_next;
-    android_log_reset;
     android_log_write_list_buffer;
     android_lookupEventTagNum;
     create_android_log_parser;
