diff --git a/Android.bp b/Android.bp
index bb2a55a..6dc214d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -3,6 +3,23 @@
 
 
 
+package {
+    default_applicable_licenses: ["external_rust_crates_kernlog_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "external_rust_crates_kernlog_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-MIT",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
 rust_library {
     name: "libkernlog",
     // has rustc warnings
diff --git a/patches/0001-Open-dev-kmsg-in-Android.patch b/patches/0001-Open-dev-kmsg-in-Android.patch
new file mode 100644
index 0000000..ca09366
--- /dev/null
+++ b/patches/0001-Open-dev-kmsg-in-Android.patch
@@ -0,0 +1,65 @@
+From 8d6bfc60f38d2b0c2d5f1cca55cef64b6f9b3f42 Mon Sep 17 00:00:00 2001
+From: Jiyong Park <jiyong@google.com>
+Date: Sat, 26 Jun 2021 00:31:25 +0900
+Subject: [PATCH] Open /dev/kmsg in Android
+
+In Android, ordinary processes don't have privilege to open /dev/kmsg.
+That has been done by letting init open it (via `file /dev/kmsg w`) and
+share the file descriptor with the forked process. The file descriptor
+number is passed via an environment variable.
+
+Implement the procedure.
+
+Bug: 189805435
+Test: m
+Change-Id: I8e39c9bd506fdc9d37a7fb5cd2b14e7d4a5074b7
+---
+ src/lib.rs | 22 ++++++++++++++++++++--
+ 1 file changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/src/lib.rs b/src/lib.rs
+index 157c43d..d87df22 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -46,7 +46,7 @@ extern crate log;
+ extern crate libc;
+ 
+ use std::fs::{OpenOptions, File};
+-use std::io::{Write, self};
++use std::io::{Error, ErrorKind, Write, self};
+ use std::sync::Mutex;
+ use std::env;
+ 
+@@ -75,10 +75,28 @@ impl KernelLog {
+         }
+     }
+ 
++    #[cfg(not(target_os = "android"))]
++    fn open_kmsg() -> io::Result<File> {
++        OpenOptions::new().write(true).open("/dev/kmsg")
++    }
++
++    #[cfg(target_os = "android")]
++    fn open_kmsg() -> io::Result<File> {
++        // In Android, a process normally doesn't have the permission to open /dev/kmsg. Instead it
++        // is opened by init (via `file /dev/kmsg w` in the rc file) and the file descriptor is
++        // shared when executing the process. The file descriptor number is passed via an
++        // environment variable "ANDROID_FILE_<file_name>" where <file_name> is the path to the
++        // file where non alpha-numeric characters are replaced with '_'.
++        match env::var("ANDROID_FILE__dev_kmsg") {
++            Ok(val) => OpenOptions::new().write(true).open(format!("/proc/self/fd/{}", val)),
++            Err(e) => Err(Error::new(ErrorKind::Other, "ANDROID_FILE__dev_kmsg doesn't exist")),
++        }
++    }
++
+     /// Create new kernel logger with error level filter
+     pub fn with_level(filter: LevelFilter) -> io::Result<KernelLog> {
+         Ok(KernelLog {
+-            kmsg: Mutex::new(OpenOptions::new().write(true).open("/dev/kmsg")?),
++            kmsg: Mutex::new(Self::open_kmsg()?),
+             maxlevel: filter
+         })
+     }
+-- 
+2.32.0.93.g670b81a890-goog
+
diff --git a/src/lib.rs b/src/lib.rs
index 157c43d..d87df22 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -46,7 +46,7 @@
 extern crate libc;
 
 use std::fs::{OpenOptions, File};
-use std::io::{Write, self};
+use std::io::{Error, ErrorKind, Write, self};
 use std::sync::Mutex;
 use std::env;
 
@@ -75,10 +75,28 @@
         }
     }
 
+    #[cfg(not(target_os = "android"))]
+    fn open_kmsg() -> io::Result<File> {
+        OpenOptions::new().write(true).open("/dev/kmsg")
+    }
+
+    #[cfg(target_os = "android")]
+    fn open_kmsg() -> io::Result<File> {
+        // In Android, a process normally doesn't have the permission to open /dev/kmsg. Instead it
+        // is opened by init (via `file /dev/kmsg w` in the rc file) and the file descriptor is
+        // shared when executing the process. The file descriptor number is passed via an
+        // environment variable "ANDROID_FILE_<file_name>" where <file_name> is the path to the
+        // file where non alpha-numeric characters are replaced with '_'.
+        match env::var("ANDROID_FILE__dev_kmsg") {
+            Ok(val) => OpenOptions::new().write(true).open(format!("/proc/self/fd/{}", val)),
+            Err(e) => Err(Error::new(ErrorKind::Other, "ANDROID_FILE__dev_kmsg doesn't exist")),
+        }
+    }
+
     /// Create new kernel logger with error level filter
     pub fn with_level(filter: LevelFilter) -> io::Result<KernelLog> {
         Ok(KernelLog {
-            kmsg: Mutex::new(OpenOptions::new().write(true).open("/dev/kmsg")?),
+            kmsg: Mutex::new(Self::open_kmsg()?),
             maxlevel: filter
         })
     }
