resource_extractor.py should preserve the timestamps of entries of the input JAR

RELNOTES:

--
MOS_MIGRATED_REVID=139370787
diff --git a/tools/android/resource_extractor.py b/tools/android/resource_extractor.py
index 5177d5e..2cd11d9 100644
--- a/tools/android/resource_extractor.py
+++ b/tools/android/resource_extractor.py
@@ -90,7 +90,7 @@
 def ExtractResources(input_jar, output_zip):
   for path in input_jar.namelist():
     if IsValidPath(path):
-      output_zip.writestr(path, input_jar.read(path))
+      output_zip.writestr(input_jar.getinfo(path), input_jar.read(path))
 
 
 def main(argv):
diff --git a/tools/android/resource_extractor_test.py b/tools/android/resource_extractor_test.py
index 77a4a37..de5b6a8 100644
--- a/tools/android/resource_extractor_test.py
+++ b/tools/android/resource_extractor_test.py
@@ -62,6 +62,14 @@
                            "not_CVS/include", "META-INF/services/foo"),
                           output_zip.namelist())
 
+  def testTimestampsAreTheSame(self):
+    input_jar = zipfile.ZipFile(StringIO.StringIO(), "w")
+    entry_info = zipfile.ZipInfo("a", (1982, 1, 1, 0, 0, 0))
+    input_jar.writestr(entry_info, "")
+    output_zip = zipfile.ZipFile(StringIO.StringIO(), "w")
+    resource_extractor.ExtractResources(input_jar, output_zip)
+    self.assertEqual((1982, 1, 1, 0, 0, 0), output_zip.getinfo("a").date_time)
+
 
 if __name__ == "__main__":
   unittest.main()