diff --git a/distro/tools/Android.bp b/distro/tools/Android.bp
index 00e844f..bfc07b7 100644
--- a/distro/tools/Android.bp
+++ b/distro/tools/Android.bp
@@ -13,11 +13,11 @@
 // limitations under the License.
 
 // The tool used to create time zone distro.zip files.
-java_library_host {
+java_binary_host {
     name: "create_time_zone_distro",
-
+    main_class: "com.android.timezone.distro.tools.CreateTimeZoneDistro",
     srcs: ["src/main/**/*.java"],
-    libs: [
+    static_libs: [
         "time_zone_distro",
     ],
 }
diff --git a/distro/tools/create-distro.py b/distro/tools/create-distro.py
index fa15004..9e70470 100755
--- a/distro/tools/create-distro.py
+++ b/distro/tools/create-distro.py
@@ -27,6 +27,8 @@
 sys.path.append('%s/external/icu/tools' % os.environ.get('ANDROID_BUILD_TOP'))
 import i18nutil
 
+sys.path.append('%s/system/timezone' % os.environ.get('ANDROID_BUILD_TOP'))
+import tzdatautil
 
 android_build_top = i18nutil.GetAndroidRootOrDie()
 android_host_out_dir = i18nutil.GetAndroidHostOutOrDie()
@@ -35,20 +37,11 @@
 
 def RunCreateTimeZoneDistro(properties_file):
   # Build the libraries needed.
-  subprocess.check_call(['make', '-C', android_build_top, 'create_time_zone_distro',
-      'time_zone_distro'])
-
-  libs = [ 'create_time_zone_distro', 'time_zone_distro' ]
-  host_java_libs_dir = '%s/../common/obj/JAVA_LIBRARIES' % android_host_out_dir
-  classpath_components = []
-  for lib in libs:
-      classpath_components.append('%s/%s_intermediates/javalib.jar' % (host_java_libs_dir, lib))
-
-  classpath = ':'.join(classpath_components)
+  tzdatautil.InvokeSoong(android_build_top, ['create_time_zone_distro'])
 
   # Run the CreateTimeZoneDistro tool
-  subprocess.check_call(['java', '-cp', classpath,
-      'com.android.timezone.distro.tools.CreateTimeZoneDistro', properties_file])
+  command = '%s/bin/create_time_zone_distro' % android_host_out_dir
+  subprocess.check_call([command, properties_file])
 
 
 def CreateTimeZoneDistro(
diff --git a/input_data/android/countryzones.txt b/input_data/android/countryzones.txt
index c9c30ab..530bbf2 100644
--- a/input_data/android/countryzones.txt
+++ b/input_data/android/countryzones.txt
@@ -25,7 +25,7 @@
 # a time zone for an Android device.
 
 # ianaVersion: The version of the IANA rules this file matches.
-ianaVersion:"2019b"
+ianaVersion:"2019c"
 
 # countries:
 #
diff --git a/input_data/iana/tzdata2019b.tar.gz b/input_data/iana/tzdata2019b.tar.gz
deleted file mode 100644
index 203cc21..0000000
--- a/input_data/iana/tzdata2019b.tar.gz
+++ /dev/null
Binary files differ
diff --git a/input_data/iana/tzdata2019b.tar.gz.asc b/input_data/iana/tzdata2019b.tar.gz.asc
deleted file mode 100644
index a6c2ecf..0000000
--- a/input_data/iana/tzdata2019b.tar.gz.asc
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAl0Zs9AACgkQ7ZfpDmKq
-fjT55Q/9G4BmEDL48wU0slZCAFNMqbvNfizL2MTNHC6Yv60gwdQCl7CgQk+zE+1W
-b4ir1Vm23eWWVdCjGGwjt4WWy+SlvnEKqjiZxTRFpkB5to8Zi5KNklGlUX0U9iUu
-vMCVKeIQMFLUr6sAqAk4lgJ2OUF1MNaj2kVwINxS+C8rCyr6wjn6FWWaxvbCO3+D
-2Z8sZgCRBWxmckqX+4Nmv2YeCGuL1ZjVTz0flkWi/OduR+PjBe/9PN506PjeEht8
-cqOjtRz/V4SEKfbv6rn8jqxDrl6xkrBxfiaF64smWgwSFcQ9yRrxCt2L35tARdal
-DAP/vb1PemUb0fJawYP/ZhiArk0fCRRZ+wleTZKsk65I4VsrffQ3rYe5ZtMYnUhO
-+UP+B7OkxNa0gARf+uFwYvrqZefg0HRq/INFqd3TCkza0wa7Rb3mQL9orCzUH7St
-XLrdhRJYWGcuepGBiTdO4+yPqXkK7k89W3ACo+HiVuRbMRo3Xf+38918kubns41l
-/itR/C/lSN+/ErokSh6VshelvOuMVcgoghTD7fDAtNaH9IgldEIF/Wf3m1Um+V9R
-sN646EvAazgkxw3hD1sEDxHxN7TIsxFvTaimVg+uwrX2b8Ok+tffomlalSXoOS8F
-zK/EyKROm8v2dSJUD0Hf+FvDqJm/Pre0ydKqsdahJYBxIStNnX8=
-=P/tF
------END PGP SIGNATURE-----
diff --git a/input_data/iana/tzdata2019c.tar.gz b/input_data/iana/tzdata2019c.tar.gz
new file mode 100644
index 0000000..2a9c944
--- /dev/null
+++ b/input_data/iana/tzdata2019c.tar.gz
Binary files differ
diff --git a/input_data/iana/tzdata2019c.tar.gz.asc b/input_data/iana/tzdata2019c.tar.gz.asc
new file mode 100644
index 0000000..ed2ac8f
--- /dev/null
+++ b/input_data/iana/tzdata2019c.tar.gz.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAl15Gt8ACgkQ7ZfpDmKq
+fjQJIQ//d285K+JrdfrQdhWCps5cQkxylPUyCvuBLEW7fI/hbyyWDL5Mh0KF1goT
+9eboGFxenHsNGpEpyEp9DGPc17PmA4lck0gQ7Uz3dZ/AkmZ+mFipHKlxk8SDDNEV
+WssSqdKEi8ZkKznVRrfQt2RAHeNHy2xofKmhkVn3dOCOMzp4RCC/eet+gqDVCXmT
+jN+sLRpWJq66fn/Ap3lpAvXVHb5aw/fLb1VsncD5L6JppGdCvdPpEGo4Hx4LgmVt
+pxQE0zACGSQzC49P6UsHPP0kiQDCAvDheyKQsnnWR4ii2elOrcQncKXaSla+CCqQ
+dBClTx52fCTUWzmFHI/aTRz01jOomKa5bK1QSgmIZK4dg56oC6zj9740ingcSrt3
+Q5+hQp5KeXjab/jqgZhWbuWG90Yho8v8WLP9Pde8CYma+UyKzIPsD7KdVqHzGylK
+PYkeyfgR3GuaxOYnseg+xr68OEYXK36PAGspiJkdGklRZ0eoEPNm1PpQSm+mVORP
+LOWgvR6+kz1AFM9Qr0hZph1YfiFp4P3X/fbwweW+uHmSAyiXiXTvDlOhBJ4Od2mG
+J8WWgMzXOK6MP+vbKSVXysFX6GTXkaP4c9Ou9B9OQkF5PGK6294so6dcVJ9Aw7ot
+ZWyzyEdkUX3gyHjsaLbS4TexBu8Y46IPoL+42FbBdO61Aj2QhBA=
+=EFVW
+-----END PGP SIGNATURE-----
diff --git a/input_tools/android/Android.bp b/input_tools/android/Android.bp
index def15df..ace0bad 100644
--- a/input_tools/android/Android.bp
+++ b/input_tools/android/Android.bp
@@ -14,9 +14,9 @@
 
 // A static library for the zone_compactor host tool.
 // The tool can be run with java -jar zone_compactor.jar
-java_library_host {
+java_binary_host {
     name: "zone_compactor",
-    manifest: "main/manifest/MANIFEST.mf",
+    main_class: "ZoneCompactor",
     srcs: ["main/java/**/*.java"],
 }
 
diff --git a/input_tools/android/main/manifest/MANIFEST.mf b/input_tools/android/main/manifest/MANIFEST.mf
deleted file mode 100644
index c4711d2..0000000
--- a/input_tools/android/main/manifest/MANIFEST.mf
+++ /dev/null
@@ -1 +0,0 @@
-Main-Class: ZoneCompactor
diff --git a/output_data/android/tzlookup.xml b/output_data/android/tzlookup.xml
index 5609355..d39d311 100644
--- a/output_data/android/tzlookup.xml
+++ b/output_data/android/tzlookup.xml
@@ -2,7 +2,7 @@
 
  **** Autogenerated file - DO NOT EDIT ****
 
---><timezones ianaversion="2019b">
+--><timezones ianaversion="2019c">
  <countryzones>
   <country code="ad" default="Europe/Andorra" everutc="n">
    <id>Europe/Andorra</id>
diff --git a/output_data/distro/distro.zip b/output_data/distro/distro.zip
index 2b67d9a..326bff5 100644
--- a/output_data/distro/distro.zip
+++ b/output_data/distro/distro.zip
Binary files differ
diff --git a/output_data/iana/tzdata b/output_data/iana/tzdata
index 7cc666d..1778881 100644
--- a/output_data/iana/tzdata
+++ b/output_data/iana/tzdata
Binary files differ
diff --git a/output_data/icu_overlay/icu_tzdata.dat b/output_data/icu_overlay/icu_tzdata.dat
index 5383d91..e32cc35 100644
--- a/output_data/icu_overlay/icu_tzdata.dat
+++ b/output_data/icu_overlay/icu_tzdata.dat
Binary files differ
diff --git a/output_data/version/tz_version b/output_data/version/tz_version
index dadd38b..d0e6c1d 100644
--- a/output_data/version/tz_version
+++ b/output_data/version/tz_version
@@ -1 +1 @@
-004.001|2019b|001
\ No newline at end of file
+004.001|2019c|001
\ No newline at end of file
diff --git a/testing/data/test1/output_data/distro/distro.zip b/testing/data/test1/output_data/distro/distro.zip
index a85ebc8..6f5e12a 100644
--- a/testing/data/test1/output_data/distro/distro.zip
+++ b/testing/data/test1/output_data/distro/distro.zip
Binary files differ
diff --git a/testing/data/test1/output_data/iana/tzdata b/testing/data/test1/output_data/iana/tzdata
index 7fc7799..333cd7b 100644
--- a/testing/data/test1/output_data/iana/tzdata
+++ b/testing/data/test1/output_data/iana/tzdata
Binary files differ
diff --git a/testing/data/test1/output_data/icu_overlay/icu_tzdata.dat b/testing/data/test1/output_data/icu_overlay/icu_tzdata.dat
index c4a2565..23544da 100644
--- a/testing/data/test1/output_data/icu_overlay/icu_tzdata.dat
+++ b/testing/data/test1/output_data/icu_overlay/icu_tzdata.dat
Binary files differ
diff --git a/testing/data/test2/output_data/distro/distro.zip b/testing/data/test2/output_data/distro/distro.zip
index 84eed87..84d30ac 100644
--- a/testing/data/test2/output_data/distro/distro.zip
+++ b/testing/data/test2/output_data/distro/distro.zip
Binary files differ
diff --git a/testing/data/test2/output_data/iana/tzdata b/testing/data/test2/output_data/iana/tzdata
index b4b004c..883b3bd 100644
--- a/testing/data/test2/output_data/iana/tzdata
+++ b/testing/data/test2/output_data/iana/tzdata
Binary files differ
diff --git a/testing/data/test2/output_data/icu_overlay/icu_tzdata.dat b/testing/data/test2/output_data/icu_overlay/icu_tzdata.dat
index 2beff19..61ac701 100644
--- a/testing/data/test2/output_data/icu_overlay/icu_tzdata.dat
+++ b/testing/data/test2/output_data/icu_overlay/icu_tzdata.dat
Binary files differ
diff --git a/testing/data/test3/output_data/distro/distro.zip b/testing/data/test3/output_data/distro/distro.zip
index 6d0a70c..4ae519d 100644
--- a/testing/data/test3/output_data/distro/distro.zip
+++ b/testing/data/test3/output_data/distro/distro.zip
Binary files differ
diff --git a/testing/data/test3/output_data/iana/tzdata b/testing/data/test3/output_data/iana/tzdata
index 7fc7799..333cd7b 100644
--- a/testing/data/test3/output_data/iana/tzdata
+++ b/testing/data/test3/output_data/iana/tzdata
Binary files differ
diff --git a/testing/data/test3/output_data/icu_overlay/icu_tzdata.dat b/testing/data/test3/output_data/icu_overlay/icu_tzdata.dat
index 8c617ee..2828ba2 100644
--- a/testing/data/test3/output_data/icu_overlay/icu_tzdata.dat
+++ b/testing/data/test3/output_data/icu_overlay/icu_tzdata.dat
Binary files differ
diff --git a/tzdatautil.py b/tzdatautil.py
index 3f82227..5a67836 100644
--- a/tzdatautil.py
+++ b/tzdatautil.py
@@ -15,6 +15,7 @@
 from __future__ import print_function
 
 import os
+import subprocess
 import sys
 
 """Shared functions for use in tzdata scripts."""
@@ -33,3 +34,9 @@
     print('Multiple %s files found unexpectedly %s' % (file_prefix, matching_files))
     sys.exit(1)
 
+
+def InvokeSoong(android_build_top, build_modules):
+  old_cwd = os.getcwd()
+  os.chdir(android_build_top)
+  subprocess.check_call(['build/soong/soong_ui.bash', '--make-mode', '-j30'] + build_modules)
+  os.chdir(old_cwd)
diff --git a/tzlookup_generator/Android.bp b/tzlookup_generator/Android.bp
index a05979f..7e7c2b9 100644
--- a/tzlookup_generator/Android.bp
+++ b/tzlookup_generator/Android.bp
@@ -27,7 +27,7 @@
 java_binary_host {
     name: "tzlookup_generator",
 
-    manifest: "src/main/manifest/MANIFEST.mf",
+    main_class: "com.android.libcore.timezone.tzlookup.TzLookupGenerator",
     srcs: ["src/main/java/**/*.java"],
     javacflags: [
         "-encoding UTF-8",
diff --git a/tzlookup_generator/src/main/manifest/MANIFEST.mf b/tzlookup_generator/src/main/manifest/MANIFEST.mf
deleted file mode 100644
index 1a1ad46..0000000
--- a/tzlookup_generator/src/main/manifest/MANIFEST.mf
+++ /dev/null
@@ -1 +0,0 @@
-Main-Class: com.android.libcore.timezone.tzlookup.TzLookupGenerator
diff --git a/update-tzdata.py b/update-tzdata.py
index 71618fd..a7cf6cc 100755
--- a/update-tzdata.py
+++ b/update-tzdata.py
@@ -162,17 +162,17 @@
   zone_compactor_setup_file = WriteSetupFile(zic_input_file)
 
   print('Calling ZoneCompactor to update tzdata to %s...' % iana_data_version)
-  subprocess.check_call(['make', '-C', android_build_top, '-j30', 'zone_compactor'])
+
+  tzdatautil.InvokeSoong(android_build_top, ['zone_compactor'])
 
   # Create args for ZoneCompactor
   zone_tab_file = '%s/zone.tab' % extracted_iana_data_dir
-  jar_file = '%s/framework/zone_compactor.jar' % android_host_out
   header_string = 'tzdata%s' % iana_data_version
 
   print('Executing ZoneCompactor...')
+  command = '%s/bin/zone_compactor' % android_host_out
   iana_output_data_dir = '%s/iana' % timezone_output_data_dir
-  subprocess.check_call(['java', '-jar', jar_file,
-                         zone_compactor_setup_file, zic_output_dir, zone_tab_file,
+  subprocess.check_call([command, zone_compactor_setup_file, zic_output_dir, zone_tab_file,
                          iana_output_data_dir, header_string])
 
 
@@ -181,12 +181,11 @@
   tzlookup_dest_file = '%s/android/tzlookup.xml' % timezone_output_data_dir
 
   print('Calling TzLookupGenerator to create tzlookup.xml...')
-  subprocess.check_call(['make', '-C', android_build_top, '-j30', 'tzlookup_generator'])
+  tzdatautil.InvokeSoong(android_build_top, ['tzlookup_generator'])
 
-  jar_file = '%s/framework/tzlookup_generator.jar' % android_host_out
   zone_tab_file = '%s/zone.tab' % iana_data_dir
-  subprocess.check_call(['java', '-jar', jar_file,
-                         countryzones_source_file, zone_tab_file, tzlookup_dest_file])
+  command = '%s/bin/tzlookup_generator' % android_host_out
+  subprocess.check_call([command, countryzones_source_file, zone_tab_file, tzlookup_dest_file])
 
 
 def CreateDistroFiles(iana_data_version, output_distro_dir, output_version_file):
