diff -ruN tensorflow-1.15.0-rc0/tensorflow/BUILD tensorflow-1.15.0-rc0-android/tensorflow/BUILD
--- tensorflow-1.15.0-rc0/tensorflow/BUILD	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/BUILD	2019-09-11 11:21:39.076610726 +0900
@@ -639,16 +639,24 @@
 
 tf_cc_shared_object(
     name = "tensorflow_cc",
-    linkopts = select({
-        "//tensorflow:macos": [
-            "-Wl,-exported_symbols_list,$(location //tensorflow:tf_exported_symbols.lds)",
-        ],
-        "//tensorflow:windows": [],
-        "//conditions:default": [
-            "-z defs",
-            "-Wl,--version-script,$(location //tensorflow:tf_version_script.lds)",
-        ],
-    }),
+#    copts = tf_copts(),
+    linkopts = [
+        "-landroid",
+        "-ljnigraphics",
+        "-llog",
+        "-lm",
+        "-z defs",
+        "-s",
+        "-ldl",
+#        "-Wl,--icf=all",  # Identical Code Folding
+        "-Wl,-z,muldefs",
+    ],
+    tags = [
+        "manual",
+        "notap",
+    ],
+#    linkshared = 1,
+    linkstatic = 1,
     per_os_targets = True,
     soversion = VERSION,
     visibility = ["//visibility:public"],
@@ -659,15 +667,7 @@
         "//conditions:default": None,
     }),
     deps = [
-        "//tensorflow:tf_exported_symbols.lds",
-        "//tensorflow:tf_version_script.lds",
-        "//tensorflow/c:c_api",
-        "//tensorflow/c/eager:c_api",
-        "//tensorflow/cc:cc_ops",
-        "//tensorflow/cc:client_session",
-        "//tensorflow/cc:scope",
-        "//tensorflow/cc/profiler",
-        "//tensorflow/core:tensorflow",
+        "//tensorflow/core:android_tensorflow_lib",
     ] + if_ngraph(["@ngraph_tf//:ngraph_tf"]),
 )
 
diff -ruN tensorflow-1.15.0-rc0/tensorflow/c/BUILD tensorflow-1.15.0-rc0-android/tensorflow/c/BUILD
--- tensorflow-1.15.0-rc0/tensorflow/c/BUILD	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/c/BUILD	2019-09-11 11:21:39.077610727 +0900
@@ -280,6 +280,22 @@
     visibility = ["//visibility:public"],
 )
 
+filegroup(
+    name = "c_api_files",
+    srcs = glob(
+        ["**/*"],
+        exclude = [
+            "**/METADATA",
+            "**/OWNERS",
+            "**/*test*",
+            "**/python_api.cc",
+            "c_api_experimental.cc",
+            "c_api_experimental.h",
+        ],
+    ),
+    visibility = ["//visibility:public"],
+)
+
 tf_cuda_library(
     name = "tf_status_helper",
     srcs = ["tf_status_helper.cc"],
diff -ruN tensorflow-1.15.0-rc0/tensorflow/core/BUILD tensorflow-1.15.0-rc0-android/tensorflow/core/BUILD
--- tensorflow-1.15.0-rc0/tensorflow/core/BUILD	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/core/BUILD	2019-09-11 11:21:39.079610729 +0900
@@ -2023,7 +2023,11 @@
 # binary size (by packaging a reduced operator set) is a concern.
 cc_library(
     name = "android_tensorflow_lib",
-    srcs = if_android([":android_op_registrations_and_gradients"]),
+    srcs = if_android([
+        ":android_op_registrations_and_gradients",
+        "//tensorflow/c:c_api_files",
+        "//tensorflow/java/src/main/native:java_api_files",
+    ]),
     copts = tf_copts(),
     tags = [
         "manual",
diff -ruN tensorflow-1.15.0-rc0/tensorflow/core/kernels/BUILD tensorflow-1.15.0-rc0-android/tensorflow/core/kernels/BUILD
--- tensorflow-1.15.0-rc0/tensorflow/core/kernels/BUILD	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/core/kernels/BUILD	2019-09-11 11:21:39.083610734 +0900
@@ -6218,6 +6218,7 @@
         "transpose_op.h",
         "where_op.h",
         "xent_op.h",
+        "cwise_op_floor.cc",
     ],
 )
 
diff -ruN tensorflow-1.15.0-rc0/tensorflow/java/BUILD tensorflow-1.15.0-rc0-android/tensorflow/java/BUILD
--- tensorflow-1.15.0-rc0/tensorflow/java/BUILD	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/java/BUILD	2019-09-11 11:21:39.085610736 +0900
@@ -24,7 +24,7 @@
         ":java_op_sources",
         ":java_sources",
     ],
-    data = [":libtensorflow_jni"] + tf_binary_additional_srcs(),
+    data = tf_binary_additional_srcs(),
     javacopts = JAVACOPTS,
     plugins = [":processor"],
     visibility = ["//visibility:public"],
diff -ruN tensorflow-1.15.0-rc0/tensorflow/java/build_defs.bzl tensorflow-1.15.0-rc0-android/tensorflow/java/build_defs.bzl
--- tensorflow-1.15.0-rc0/tensorflow/java/build_defs.bzl	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/java/build_defs.bzl	2019-09-12 11:09:05.986979575 +0900
@@ -13,7 +13,6 @@
 # Java source to improve code consistency.
 
 XLINT_OPTS = [
-    "-Werror",
     "-Xlint:all",
     "-Xlint:-processing",
     "-Xlint:-serial",
diff -ruN tensorflow-1.15.0-rc0/tensorflow/java/src/main/native/BUILD tensorflow-1.15.0-rc0-android/tensorflow/java/src/main/native/BUILD
--- tensorflow-1.15.0-rc0/tensorflow/java/src/main/native/BUILD	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/java/src/main/native/BUILD	2019-09-11 11:21:39.086610737 +0900
@@ -86,3 +86,15 @@
     ),
     visibility = ["//tensorflow:__subpackages__"],
 )
+
+filegroup(
+    name = "java_api_files",
+    srcs = glob(
+        ["**/*"],
+        exclude = [
+            "**/METADATA",
+            "**/OWNERS",
+        ],
+    ),
+    visibility = ["//visibility:public"],
+)
diff -ruN tensorflow-1.15.0-rc0/tensorflow/tensorflow.bzl tensorflow-1.15.0-rc0-android/tensorflow/tensorflow.bzl
--- tensorflow-1.15.0-rc0/tensorflow/tensorflow.bzl	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/tensorflow/tensorflow.bzl	2019-09-11 11:23:44.343754076 +0900
@@ -277,7 +277,7 @@
     # To clear this value, and allow the CROSSTOOL default
     # to be used, pass android_optimization_level_override=None
     android_copts = [
-        "-DTF_LEAN_BINARY",
+#        "-DTF_LEAN_BINARY",
         "-Wno-narrowing",
         "-fomit-frame-pointer",
     ]
diff -ruN tensorflow-1.15.0-rc0/WORKSPACE tensorflow-1.15.0-rc0-android/WORKSPACE
--- tensorflow-1.15.0-rc0/WORKSPACE	2019-09-09 05:24:52.000000000 +0900
+++ tensorflow-1.15.0-rc0-android/WORKSPACE	2019-09-11 11:24:29.527805783 +0900
@@ -94,6 +94,16 @@
 load("@local_config_android//:android.bzl", "android_workspace")
 android_workspace()
 
+android_ndk_repository(
+    name="androidndk",
+    path="<PATH_TO_NDK>",
+    # This needs to be 14 or higher to compile TensorFlow.
+    # Please specify API level to >= 21 to build for 64-bit
+    # archtectures or the Android NDK will automatically select biggest
+    # API level that it supports without notice.
+    # Note that the NDK version is not the API level.
+    api_level=21)
+
 # If a target is bound twice, the later one wins, so we have to do tf bindings
 # at the end of the WORKSPACE file.
 load("//tensorflow:workspace.bzl", "tf_bind")
