Revert "Remove unused reference to missing sun.misc.Unsafe method"

This reverts commit 7664db57a53476f84f46128d6258c476433e7734.

Change-Id: I30d4d35dfacaa43056b326e2c3d0cd2fd3dda7c0
(cherry picked from commit d6c856a065c0a2f636c993c647b9a17885c88050)
diff --git a/java/core/src/main/java/com/google/protobuf/UnsafeUtil.java b/java/core/src/main/java/com/google/protobuf/UnsafeUtil.java
index 051fffc..6a4787d 100644
--- a/java/core/src/main/java/com/google/protobuf/UnsafeUtil.java
+++ b/java/core/src/main/java/com/google/protobuf/UnsafeUtil.java
@@ -73,19 +73,10 @@
     UNSAFE.putByte(target, offset, value);
   }
 
-  // BEGIN Android-removed
-  // This method doesn't exist in sun.misc.Unsafe in Android, and leaving the
-  // dangling reference causes soft-verification errors when a jarjar'd version
-  // of libprotobuf-java-lite is included in the bootclasspath:
-  //  Soft verification failures in void com.android.framework.protobuf.UnsafeUtil.copyMemory(byte[], long, byte[], long, long)
-  //  void com.android.framework.protobuf.UnsafeUtil.copyMemory(byte[], long, byte[], long, long): [0x7] couldn't find method sun.misc.Unsafe.copyMemory ([BJ[BJJ)V
-  // This method is unused in the current open-source implementation of the
-  // protobuf lite runtime, so just remove it for now.
-  //static void copyMemory(
-  //    byte[] src, long srcOffset, byte[] target, long targetOffset, long length) {
-  //  UNSAFE.copyMemory(src, srcOffset, target, targetOffset, length);
-  //}
-  // END Android-removed
+  static void copyMemory(
+      byte[] src, long srcOffset, byte[] target, long targetOffset, long length) {
+    UNSAFE.copyMemory(src, srcOffset, target, targetOffset, length);
+  }
 
   static long getLong(byte[] target, long offset) {
     return UNSAFE.getLong(target, offset);