diff --git a/include/cutils/endian.h b/include/cutils/endian.h
deleted file mode 100644
index 3d27ce6..0000000
--- a/include/cutils/endian.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-#ifndef __CUTILS_ENDIAN_H
-#define __CUTILS_ENDIAN_H
-
-#if defined(__linux__) && !defined(TEST_CUTILS_ENDIAN_H)
-#include <endian.h>
-#else
-
-#if !defined(__BYTE_ORDER__)
-/* gcc and clang predefine __BYTE_ORDER__, so this should never happen */
-#error Compiler does not define __BYTE_ORDER__
-#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-#define htobe16(x)  (x)
-#define htobe32(x)  (x)
-#define htobe64(x)  (x)
-#define htole16(x)  __builtin_bswap16(x)
-#define htole32(x)  __builtin_bswap32(x)
-#define htole64(x)  __builtin_bswap64(x)
-#else
-#define htobe16(x)  __builtin_bswap16(x)
-#define htobe32(x)  __builtin_bswap32(x)
-#define htobe64(x)  __builtin_bswap64(x)
-#define htole16(x)  (x)
-#define htole32(x)  (x)
-#define htole64(x)  (x)
-#endif /* __BYTE_ORDER__ */
-
-#define be16toh(x)  htobe16(x)
-#define le16toh(x)  htole16(x)
-#define be32toh(x)  htobe32(x)
-#define le32toh(x)  htole32(x)
-#define be64toh(x)  htobe64(x)
-#define le64toh(x)  htole64(x)
-
-#endif /* defined(__linux__) */
-
-#endif /* __CUTILS_ENDIAN_H */
diff --git a/libcutils/tests/Android.mk b/libcutils/tests/Android.mk
index 577b61d..cf70345 100644
--- a/libcutils/tests/Android.mk
+++ b/libcutils/tests/Android.mk
@@ -16,7 +16,6 @@
 
 test_src_files := \
     test_str_parms.cpp \
-    EndianTest.cpp
 
 test_target_only_src_files := \
     MemsetTest.cpp \
diff --git a/libcutils/tests/EndianTest.cpp b/libcutils/tests/EndianTest.cpp
deleted file mode 100644
index a484da7..0000000
--- a/libcutils/tests/EndianTest.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-#include <stdint.h>
-
-#define TEST_CUTILS_ENDIAN_H
-#include <cutils/endian.h>
-#include <gtest/gtest.h>
-
-static const uint16_t host16 = 0x1122;
-static const uint32_t host32 = 0x11223344;
-static const uint64_t host64 = 0x1122334455667788;
-static const uint16_t swapped16 = 0x2211;
-static const uint32_t swapped32 = 0x44332211;
-static const uint64_t swapped64 = 0x8877665544332211;
-#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-static const uint16_t le16 = swapped16;
-static const uint32_t le32 = swapped32;
-static const uint64_t le64 = swapped64;
-static const uint16_t be16 = native16;
-static const uint32_t be32 = native32;
-static const uint64_t be64 = native64;
-#else
-static const uint16_t le16 = host16;
-static const uint32_t le32 = host32;
-static const uint64_t le64 = host64;
-static const uint16_t be16 = swapped16;
-static const uint32_t be32 = swapped32;
-static const uint64_t be64 = swapped64;
-#endif
-
-TEST(endian, endian) {
-    EXPECT_EQ(le16, htole16(host16));
-    EXPECT_EQ(host16, le16toh(htole16(host16)));
-    EXPECT_EQ(be16, htobe16(host16));
-    EXPECT_EQ(host16, be16toh(htobe16(host16)));
-
-    EXPECT_EQ(le32, htole32(host32));
-    EXPECT_EQ(host32, le32toh(htole32(host32)));
-    EXPECT_EQ(be32, htobe32(host32));
-    EXPECT_EQ(host32, be32toh(htobe32(host32)));
-
-    EXPECT_EQ(le64, htole64(host64));
-    EXPECT_EQ(host64, le64toh(htole64(host64)));
-    EXPECT_EQ(be64, htobe64(host64));
-    EXPECT_EQ(host64, be64toh(htobe64(host64)));
-}
