This directory contains tools for ICU updates. Data update tools ================= update-tzdata.py - downloads tzdata updates and regenerates the ICU and libcore/bionic timezone data files. There are sometimes code and metadata changes associated with tzdata updates that should be applied at the same time. e.g. see http://bugs.icu-project.org/trac/search?q=2015d ICU and CTS tests for bionic / libcore should be run before and after. updateicudata.py - regerates the ICU data files. ICU and CTS tests for libcore should be run before and after. Source code updates =================== The source code in android_icu4j is generated from the code in icu4j. Do not change the code in android_icu4j directly: instead you change the icu4j source or the rules used to generate android_icu4j. All changes made to icu4j should be accompanied by changes in android_icu4j and vice versa. Applying patches to ICU4J ------------------------- After making changes to icu4j (e.g. after applying upstream patches): source build/envsetup.sh lunch cd external/icu/tools/srcgen ./generate_android_icu4j.sh The code in android_icu4j will be regenerated and should contain the changes you made in icu4j. Confirm the diffs are what you intended. Commit both at the same time. Modifying the code gen ---------------------- android_icu4j is generated using a Java tool found in tools/srcgen. The "rules" that transform the source are configured in src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java.