diff --git a/android_icu4j/src/main/java/android/icu/impl/Assert.java b/android_icu4j/src/main/java/android/icu/impl/Assert.java
index 44cf879..3989969 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Assert.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Assert.java
@@ -10,7 +10,6 @@
 // 1.3 compatibility layer
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class Assert {
     public static void fail(Exception e) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/BMPSet.java b/android_icu4j/src/main/java/android/icu/impl/BMPSet.java
index afed2d2..4d98222 100644
--- a/android_icu4j/src/main/java/android/icu/impl/BMPSet.java
+++ b/android_icu4j/src/main/java/android/icu/impl/BMPSet.java
@@ -21,7 +21,6 @@
  * 3-byte characters: Use zero/one/mixed data per 64-block in U+0000..U+FFFF, with mixed for illegal ranges.
  * Supplementary characters: Call contains() on the parent set.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class BMPSet {
     public static int U16_SURROGATE_OFFSET = ((0xd800 << 10) + 0xdc00 - 0x10000);
diff --git a/android_icu4j/src/main/java/android/icu/impl/CacheBase.java b/android_icu4j/src/main/java/android/icu/impl/CacheBase.java
index 82c3ae0..f93f0e8 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CacheBase.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CacheBase.java
@@ -20,7 +20,6 @@
  *
  * @author Markus Scherer, Mark Davis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class CacheBase<K, V, D> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/CalendarAstronomer.java b/android_icu4j/src/main/java/android/icu/impl/CalendarAstronomer.java
index bc31de6..7604ff4 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CalendarAstronomer.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CalendarAstronomer.java
@@ -45,7 +45,6 @@
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class CalendarAstronomer {
     
diff --git a/android_icu4j/src/main/java/android/icu/impl/CalendarCache.java b/android_icu4j/src/main/java/android/icu/impl/CalendarCache.java
index 6fe7895..b85f797 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CalendarCache.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CalendarCache.java
@@ -10,7 +10,6 @@
 /**
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class CalendarCache
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/CalendarData.java b/android_icu4j/src/main/java/android/icu/impl/CalendarData.java
index c914811..bd14101 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CalendarData.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CalendarData.java
@@ -18,7 +18,6 @@
  * This class abstracts access to calendar (Calendar and DateFormat) data.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class CalendarData {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/CalendarUtil.java b/android_icu4j/src/main/java/android/icu/impl/CalendarUtil.java
index 8d04eb1..107c167 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CalendarUtil.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CalendarUtil.java
@@ -22,7 +22,6 @@
  * package for sharing some calendar internal code for calendar
  * and date format.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class CalendarUtil {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/CharTrie.java b/android_icu4j/src/main/java/android/icu/impl/CharTrie.java
index 4956921..6769147 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CharTrie.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CharTrie.java
@@ -17,7 +17,6 @@
  * @author synwee
  * @see android.icu.impl.Trie
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
  // note that i need to handle the block calculations later, since chartrie
diff --git a/android_icu4j/src/main/java/android/icu/impl/CharacterIteration.java b/android_icu4j/src/main/java/android/icu/impl/CharacterIteration.java
index 38978ea..a6e12c3 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CharacterIteration.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CharacterIteration.java
@@ -13,7 +13,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CharacterIteration {
     // disallow instantiation
diff --git a/android_icu4j/src/main/java/android/icu/impl/CharacterIteratorWrapper.java b/android_icu4j/src/main/java/android/icu/impl/CharacterIteratorWrapper.java
index fc53ee1..c379156 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CharacterIteratorWrapper.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CharacterIteratorWrapper.java
@@ -16,7 +16,6 @@
  * UCharacterIterator protocol
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public class CharacterIteratorWrapper extends UCharacterIterator {
diff --git a/android_icu4j/src/main/java/android/icu/impl/ClassLoaderUtil.java b/android_icu4j/src/main/java/android/icu/impl/ClassLoaderUtil.java
index 3ba7e8c..6bc9849 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ClassLoaderUtil.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ClassLoaderUtil.java
@@ -16,7 +16,6 @@
  * a given class. getClassLoader always returns a non-null ClassLoader
  * even a class is loaded through the bootstrap class loader of JRE.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ClassLoaderUtil {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/CurrencyData.java b/android_icu4j/src/main/java/android/icu/impl/CurrencyData.java
index 264f198..8687468 100644
--- a/android_icu4j/src/main/java/android/icu/impl/CurrencyData.java
+++ b/android_icu4j/src/main/java/android/icu/impl/CurrencyData.java
@@ -15,7 +15,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class CurrencyData {
     public static final CurrencyDisplayInfoProvider provider;
diff --git a/android_icu4j/src/main/java/android/icu/impl/DateNumberFormat.java b/android_icu4j/src/main/java/android/icu/impl/DateNumberFormat.java
index cc61c3b..f049fc4 100644
--- a/android_icu4j/src/main/java/android/icu/impl/DateNumberFormat.java
+++ b/android_icu4j/src/main/java/android/icu/impl/DateNumberFormat.java
@@ -28,7 +28,6 @@
  */
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class DateNumberFormat extends NumberFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/Differ.java b/android_icu4j/src/main/java/android/icu/impl/Differ.java
index 6d89e31..3f376e0 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Differ.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Differ.java
@@ -13,7 +13,6 @@
  * @author Mark Davis
  * @version 1.0
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 final public class Differ<T> {
diff --git a/android_icu4j/src/main/java/android/icu/impl/DontCareFieldPosition.java b/android_icu4j/src/main/java/android/icu/impl/DontCareFieldPosition.java
index cbd29d0..36521f2 100644
--- a/android_icu4j/src/main/java/android/icu/impl/DontCareFieldPosition.java
+++ b/android_icu4j/src/main/java/android/icu/impl/DontCareFieldPosition.java
@@ -18,7 +18,6 @@
  * A <code>format</code> method use <code>fpos == DontCareFieldPosition.INSTANCE</code>
  * to tell whether or not it needs to calculate a field position.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  *
  */
 public final class DontCareFieldPosition extends FieldPosition {
diff --git a/android_icu4j/src/main/java/android/icu/impl/Grego.java b/android_icu4j/src/main/java/android/icu/impl/Grego.java
index ea969bd..4d66008 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Grego.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Grego.java
@@ -27,7 +27,6 @@
  * Note:  Unlike GregorianCalendar, all computations performed by this
  * class occur in the pure proleptic GregorianCalendar.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class Grego {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUBinary.java b/android_icu4j/src/main/java/android/icu/impl/ICUBinary.java
index ca7313a..5753779 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUBinary.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUBinary.java
@@ -27,7 +27,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ICUBinary {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUCache.java b/android_icu4j/src/main/java/android/icu/impl/ICUCache.java
index 790ad12..75a96b7 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUCache.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUCache.java
@@ -10,7 +10,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface ICUCache<K, V> {
     // Type of reference holding the Map instance
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUConfig.java b/android_icu4j/src/main/java/android/icu/impl/ICUConfig.java
index 2e1d2a5..ac03c76 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUConfig.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUConfig.java
@@ -18,7 +18,6 @@
 /**
  * ICUConfig is a class used for accessing ICU4J runtime configuration.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUConfig {
     public static final String CONFIG_PROPS_FILE = "/android/icu/ICUConfig.properties";
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyDisplayInfoProvider.java b/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyDisplayInfoProvider.java
index ae4c791..1cc3639 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyDisplayInfoProvider.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyDisplayInfoProvider.java
@@ -24,7 +24,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUCurrencyDisplayInfoProvider implements CurrencyDisplayInfoProvider {
     public ICUCurrencyDisplayInfoProvider() {
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyMetaInfo.java b/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyMetaInfo.java
index 2b440a0..bfc26c9 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyMetaInfo.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUCurrencyMetaInfo.java
@@ -19,7 +19,6 @@
 /**
  * ICU's currency meta info data.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUCurrencyMetaInfo extends CurrencyMetaInfo {
     private ICUResourceBundle regionInfo;
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUData.java b/android_icu4j/src/main/java/android/icu/impl/ICUData.java
index 00b562e..34b8323 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUData.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUData.java
@@ -23,7 +23,6 @@
 /**
  * Provides access to ICU data files as InputStreams.  Implements security checking.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ICUData {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUDataVersion.java b/android_icu4j/src/main/java/android/icu/impl/ICUDataVersion.java
index 110d419..d0b78af 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUDataVersion.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUDataVersion.java
@@ -15,7 +15,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ICUDataVersion {
     private static final String U_ICU_VERSION_BUNDLE = "icuver";
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUDebug.java b/android_icu4j/src/main/java/android/icu/impl/ICUDebug.java
index 2948d3d..c7336bb 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUDebug.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUDebug.java
@@ -11,7 +11,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ICUDebug {
     private static String params;
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICULangDataTables.java b/android_icu4j/src/main/java/android/icu/impl/ICULangDataTables.java
index 600289a..4592b31 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICULangDataTables.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICULangDataTables.java
@@ -9,7 +9,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICULangDataTables extends LocaleDisplayNamesImpl.ICUDataTables {
     public ICULangDataTables() {
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICULocaleService.java b/android_icu4j/src/main/java/android/icu/impl/ICULocaleService.java
index 77ccddd..2f8652f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICULocaleService.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICULocaleService.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICULocaleService extends ICUService {
     private ULocale fallbackLocale;
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUNotifier.java b/android_icu4j/src/main/java/android/icu/impl/ICUNotifier.java
index 1538959..07b2969 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUNotifier.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUNotifier.java
@@ -28,7 +28,6 @@
  * NotifyListener should cast the listener to the appropriate 
  * type and call the appropriate method on the listener.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class ICUNotifier {
     private final Object notifyLock = new Object();
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICURWLock.java b/android_icu4j/src/main/java/android/icu/impl/ICURWLock.java
index a1d6722..c299e91 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICURWLock.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICURWLock.java
@@ -35,7 +35,6 @@
  * <p>The lock provides utility methods getStats and clearStats
  * to return statistics on the use of the lock.</p>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICURWLock {
     private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICURegionDataTables.java b/android_icu4j/src/main/java/android/icu/impl/ICURegionDataTables.java
index ea83135..ec88f06 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICURegionDataTables.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICURegionDataTables.java
@@ -9,7 +9,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICURegionDataTables extends LocaleDisplayNamesImpl.ICUDataTables {
     public ICURegionDataTables() {
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundle.java b/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundle.java
index bb62b45..08734fc 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundle.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundle.java
@@ -33,7 +33,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public  class ICUResourceBundle extends UResourceBundle {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundleReader.java b/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundleReader.java
index 38ba370..d00f7b9 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundleReader.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUResourceBundleReader.java
@@ -28,7 +28,6 @@
  *
  * For the file format documentation see ICU4C's source/common/uresdata.h file.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ICUResourceBundleReader {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUResourceTableAccess.java b/android_icu4j/src/main/java/android/icu/impl/ICUResourceTableAccess.java
index 03cc5c6..d792811 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUResourceTableAccess.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUResourceTableAccess.java
@@ -14,7 +14,6 @@
  * Static utility functions for probing resource tables, used by ULocale and
  * LocaleDisplayNames.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUResourceTableAccess {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/ICUService.java b/android_icu4j/src/main/java/android/icu/impl/ICUService.java
index 2aaf1fa..833ca25 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ICUService.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ICUService.java
@@ -90,7 +90,6 @@
  * uses Locale names as ids and uses Keys that implement the standard
  * resource bundle fallback strategy.<p>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUService extends ICUNotifier {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/IDNA2003.java b/android_icu4j/src/main/java/android/icu/impl/IDNA2003.java
index 454aee5..28a09e4 100644
--- a/android_icu4j/src/main/java/android/icu/impl/IDNA2003.java
+++ b/android_icu4j/src/main/java/android/icu/impl/IDNA2003.java
@@ -17,7 +17,6 @@
  * while extending that class to support IDNA2008/UTS #46 as well.
  * @author Ram Viswanadha
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class IDNA2003 {
     /* IDNA ACE Prefix is "xn--" */
diff --git a/android_icu4j/src/main/java/android/icu/impl/IllegalIcuArgumentException.java b/android_icu4j/src/main/java/android/icu/impl/IllegalIcuArgumentException.java
index fed1905..75093be 100644
--- a/android_icu4j/src/main/java/android/icu/impl/IllegalIcuArgumentException.java
+++ b/android_icu4j/src/main/java/android/icu/impl/IllegalIcuArgumentException.java
@@ -10,7 +10,6 @@
 /**
  * @author markdavis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  *
  */
 public class IllegalIcuArgumentException extends IllegalArgumentException {
diff --git a/android_icu4j/src/main/java/android/icu/impl/IntTrie.java b/android_icu4j/src/main/java/android/icu/impl/IntTrie.java
index 82687e2..a902ec3 100644
--- a/android_icu4j/src/main/java/android/icu/impl/IntTrie.java
+++ b/android_icu4j/src/main/java/android/icu/impl/IntTrie.java
@@ -22,7 +22,6 @@
  * @author synwee
  * @see android.icu.impl.Trie
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class IntTrie extends Trie
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/IntTrieBuilder.java b/android_icu4j/src/main/java/android/icu/impl/IntTrieBuilder.java
index 461a52d..e7d6a32 100644
--- a/android_icu4j/src/main/java/android/icu/impl/IntTrieBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/impl/IntTrieBuilder.java
@@ -33,7 +33,6 @@
  * This is a direct port from the ICU4C version
  * @author             Syn Wee Quek
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class IntTrieBuilder extends TrieBuilder
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/InvalidFormatException.java b/android_icu4j/src/main/java/android/icu/impl/InvalidFormatException.java
index 4baf848..42867bb 100644
--- a/android_icu4j/src/main/java/android/icu/impl/InvalidFormatException.java
+++ b/android_icu4j/src/main/java/android/icu/impl/InvalidFormatException.java
@@ -11,7 +11,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class InvalidFormatException extends Exception {
     
diff --git a/android_icu4j/src/main/java/android/icu/impl/IterableComparator.java b/android_icu4j/src/main/java/android/icu/impl/IterableComparator.java
index f3e7685..4aaaed2 100644
--- a/android_icu4j/src/main/java/android/icu/impl/IterableComparator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/IterableComparator.java
@@ -14,7 +14,6 @@
  * TODO: Move to android.icu.dev.somewhere.
  * 2015-sep-03: Not used in ICU but used in CLDR and in UnicodeTools.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class IterableComparator<T> implements Comparator<Iterable<T>> {
     private final Comparator<T> comparator;
diff --git a/android_icu4j/src/main/java/android/icu/impl/JavaTimeZone.java b/android_icu4j/src/main/java/android/icu/impl/JavaTimeZone.java
index f77d547..66cb8a5 100644
--- a/android_icu4j/src/main/java/android/icu/impl/JavaTimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/impl/JavaTimeZone.java
@@ -26,7 +26,6 @@
  * This TimeZone subclass is returned by the TimeZone factory method getTimeZone(String)
  * when the default timezone type in TimeZone class is TimeZone.TIMEZONE_JDK.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class JavaTimeZone extends TimeZone {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/LocaleDisplayNamesImpl.java b/android_icu4j/src/main/java/android/icu/impl/LocaleDisplayNamesImpl.java
index 9229cee..05f8ea6 100644
--- a/android_icu4j/src/main/java/android/icu/impl/LocaleDisplayNamesImpl.java
+++ b/android_icu4j/src/main/java/android/icu/impl/LocaleDisplayNamesImpl.java
@@ -35,7 +35,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocaleDisplayNamesImpl extends LocaleDisplayNames {
     private final ULocale locale;
diff --git a/android_icu4j/src/main/java/android/icu/impl/LocaleIDParser.java b/android_icu4j/src/main/java/android/icu/impl/LocaleIDParser.java
index 1147e31..4bb62b0 100644
--- a/android_icu4j/src/main/java/android/icu/impl/LocaleIDParser.java
+++ b/android_icu4j/src/main/java/android/icu/impl/LocaleIDParser.java
@@ -19,7 +19,6 @@
 /**
  * Utility class to parse and normalize locale ids (including POSIX style)
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class LocaleIDParser {
     
diff --git a/android_icu4j/src/main/java/android/icu/impl/LocaleIDs.java b/android_icu4j/src/main/java/android/icu/impl/LocaleIDs.java
index dcc4390..e01f698 100644
--- a/android_icu4j/src/main/java/android/icu/impl/LocaleIDs.java
+++ b/android_icu4j/src/main/java/android/icu/impl/LocaleIDs.java
@@ -14,7 +14,6 @@
  * Utilities for mapping between old and new language, country, and other
  * locale ID related names.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocaleIDs {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/LocaleUtility.java b/android_icu4j/src/main/java/android/icu/impl/LocaleUtility.java
index 93a93ae..f1fafc5 100644
--- a/android_icu4j/src/main/java/android/icu/impl/LocaleUtility.java
+++ b/android_icu4j/src/main/java/android/icu/impl/LocaleUtility.java
@@ -15,7 +15,6 @@
 /**
  * A class to hold utility functions missing from java.util.Locale.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocaleUtility {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/MultiComparator.java b/android_icu4j/src/main/java/android/icu/impl/MultiComparator.java
index eb32896..ea3bc33 100644
--- a/android_icu4j/src/main/java/android/icu/impl/MultiComparator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/MultiComparator.java
@@ -13,7 +13,6 @@
  * TODO: Move to android.icu.dev.somewhere.
  * 2015-sep-03: This is used there, and also in CLDR and in UnicodeTools.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class MultiComparator<T> implements Comparator<T> {
     private Comparator<T>[] comparators;
diff --git a/android_icu4j/src/main/java/android/icu/impl/Norm2AllModes.java b/android_icu4j/src/main/java/android/icu/impl/Norm2AllModes.java
index 8913cd1..ceb8df7 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Norm2AllModes.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Norm2AllModes.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Norm2AllModes {
     // Public API dispatch via Normalizer2 subclasses -------------------------- ***
diff --git a/android_icu4j/src/main/java/android/icu/impl/Normalizer2Impl.java b/android_icu4j/src/main/java/android/icu/impl/Normalizer2Impl.java
index 05e4b56..2414b0b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Normalizer2Impl.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Normalizer2Impl.java
@@ -20,7 +20,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Normalizer2Impl {
     public static final class Hangul {
diff --git a/android_icu4j/src/main/java/android/icu/impl/OlsonTimeZone.java b/android_icu4j/src/main/java/android/icu/impl/OlsonTimeZone.java
index 662739b..c32aaf9 100644
--- a/android_icu4j/src/main/java/android/icu/impl/OlsonTimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/impl/OlsonTimeZone.java
@@ -113,7 +113,6 @@
  * (UN M.49 - World).  This data is generated from "zone.tab"
  * in the tz database.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class OlsonTimeZone extends BasicTimeZone {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/PVecToTrieCompactHandler.java b/android_icu4j/src/main/java/android/icu/impl/PVecToTrieCompactHandler.java
index 5c23063..7b110e5 100644
--- a/android_icu4j/src/main/java/android/icu/impl/PVecToTrieCompactHandler.java
+++ b/android_icu4j/src/main/java/android/icu/impl/PVecToTrieCompactHandler.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class PVecToTrieCompactHandler implements CompactHandler {
     public IntTrieBuilder builder;
diff --git a/android_icu4j/src/main/java/android/icu/impl/Pair.java b/android_icu4j/src/main/java/android/icu/impl/Pair.java
index ffc09a9..9d53b49 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Pair.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Pair.java
@@ -13,7 +13,6 @@
  * @param <F> first object type
  * @param <S> second object type
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class Pair<F, S> {
     public final F first;
diff --git a/android_icu4j/src/main/java/android/icu/impl/PatternProps.java b/android_icu4j/src/main/java/android/icu/impl/PatternProps.java
index 3778aaa..d102357 100644
--- a/android_icu4j/src/main/java/android/icu/impl/PatternProps.java
+++ b/android_icu4j/src/main/java/android/icu/impl/PatternProps.java
@@ -29,7 +29,6 @@
  *    \u3001-\u3003\u3008-\u3020\u3030\uFD3E\uFD3F\uFE45\uFE46]
  * @author mscherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class PatternProps {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/PatternTokenizer.java b/android_icu4j/src/main/java/android/icu/impl/PatternTokenizer.java
index 0c425cd..635c7f8 100644
--- a/android_icu4j/src/main/java/android/icu/impl/PatternTokenizer.java
+++ b/android_icu4j/src/main/java/android/icu/impl/PatternTokenizer.java
@@ -20,7 +20,6 @@
  * <li>Other characters are treated as literals</li>
  * </ul>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class PatternTokenizer {
     // settings used in the interpretation of the pattern
diff --git a/android_icu4j/src/main/java/android/icu/impl/PluralRulesLoader.java b/android_icu4j/src/main/java/android/icu/impl/PluralRulesLoader.java
index b57c6f1..a18f722 100644
--- a/android_icu4j/src/main/java/android/icu/impl/PluralRulesLoader.java
+++ b/android_icu4j/src/main/java/android/icu/impl/PluralRulesLoader.java
@@ -26,7 +26,6 @@
 /**
  * Loader for plural rules data.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class PluralRulesLoader extends PluralRules.Factory {
     private final Map<String, PluralRules> rulesIdToRules;
diff --git a/android_icu4j/src/main/java/android/icu/impl/PropsVectors.java b/android_icu4j/src/main/java/android/icu/impl/PropsVectors.java
index 3137b12..f18acf2 100644
--- a/android_icu4j/src/main/java/android/icu/impl/PropsVectors.java
+++ b/android_icu4j/src/main/java/android/icu/impl/PropsVectors.java
@@ -34,7 +34,6 @@
  * It would be possible to store only one range boundary per row, but
  * self-contained rows allow to later sort them by contents.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class PropsVectors {
     private int v[];
diff --git a/android_icu4j/src/main/java/android/icu/impl/Punycode.java b/android_icu4j/src/main/java/android/icu/impl/Punycode.java
index 38a662d..4f36222 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Punycode.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Punycode.java
@@ -15,7 +15,6 @@
  * Ported code from ICU punycode.c 
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Punycode {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/Relation.java b/android_icu4j/src/main/java/android/icu/impl/Relation.java
index e4083ca..232845f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Relation.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Relation.java
@@ -28,7 +28,6 @@
  * The Map-like APIs return collections for values.
  * @author medavis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 
  */
 public class Relation<K, V> implements Freezable<Relation<K,V>> { // TODO: add , Map<K, Collection<V>>, but requires API changes
diff --git a/android_icu4j/src/main/java/android/icu/impl/RelativeDateFormat.java b/android_icu4j/src/main/java/android/icu/impl/RelativeDateFormat.java
index d4a20a8..1a533c6 100644
--- a/android_icu4j/src/main/java/android/icu/impl/RelativeDateFormat.java
+++ b/android_icu4j/src/main/java/android/icu/impl/RelativeDateFormat.java
@@ -30,7 +30,6 @@
 /**
  * @author srl
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class RelativeDateFormat extends DateFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/ReplaceableUCharacterIterator.java b/android_icu4j/src/main/java/android/icu/impl/ReplaceableUCharacterIterator.java
index e5056b8..765208b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ReplaceableUCharacterIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ReplaceableUCharacterIterator.java
@@ -22,7 +22,6 @@
  *
  * What are first, last, and getBeginIndex doing here?!?!?!
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ReplaceableUCharacterIterator extends UCharacterIterator {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/ResourceBundleWrapper.java b/android_icu4j/src/main/java/android/icu/impl/ResourceBundleWrapper.java
index 8a0963b..7524c82 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ResourceBundleWrapper.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ResourceBundleWrapper.java
@@ -24,7 +24,6 @@
  * just a wrapper for Java ListResourceBundles and 
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  *
  */
 public class ResourceBundleWrapper extends UResourceBundle {
diff --git a/android_icu4j/src/main/java/android/icu/impl/Row.java b/android_icu4j/src/main/java/android/icu/impl/Row.java
index 0bb1214..4f69098 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Row.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Row.java
@@ -14,7 +14,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @SuppressWarnings({ "unchecked", "rawtypes" })
 public class Row<C0, C1, C2, C3, C4> implements java.lang.Comparable, Cloneable,
diff --git a/android_icu4j/src/main/java/android/icu/impl/RuleCharacterIterator.java b/android_icu4j/src/main/java/android/icu/impl/RuleCharacterIterator.java
index 0754947..285fe9e 100644
--- a/android_icu4j/src/main/java/android/icu/impl/RuleCharacterIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/RuleCharacterIterator.java
@@ -22,7 +22,6 @@
  * in order to minimize complexity.
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class RuleCharacterIterator {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/SimpleCache.java b/android_icu4j/src/main/java/android/icu/impl/SimpleCache.java
index eaafad3..3af71ca 100644
--- a/android_icu4j/src/main/java/android/icu/impl/SimpleCache.java
+++ b/android_icu4j/src/main/java/android/icu/impl/SimpleCache.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SimpleCache<K, V> implements ICUCache<K, V> {
     private static final int DEFAULT_CAPACITY = 16;
diff --git a/android_icu4j/src/main/java/android/icu/impl/SimpleFilteredSentenceBreakIterator.java b/android_icu4j/src/main/java/android/icu/impl/SimpleFilteredSentenceBreakIterator.java
index 0af0be0..d6f5c69 100644
--- a/android_icu4j/src/main/java/android/icu/impl/SimpleFilteredSentenceBreakIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/SimpleFilteredSentenceBreakIterator.java
@@ -23,7 +23,6 @@
 /**
  * @author tomzhang
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SimpleFilteredSentenceBreakIterator extends BreakIterator {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/SimplePatternFormatter.java b/android_icu4j/src/main/java/android/icu/impl/SimplePatternFormatter.java
index 0671cfb..5baa132 100644
--- a/android_icu4j/src/main/java/android/icu/impl/SimplePatternFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/SimplePatternFormatter.java
@@ -32,7 +32,6 @@
  * System.out.println(fmt.format("england", "paul"));
  * </pre>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SimplePatternFormatter {
     private final String patternWithoutPlaceholders;
diff --git a/android_icu4j/src/main/java/android/icu/impl/SoftCache.java b/android_icu4j/src/main/java/android/icu/impl/SoftCache.java
index 9d4d4b0..f9fbe42 100644
--- a/android_icu4j/src/main/java/android/icu/impl/SoftCache.java
+++ b/android_icu4j/src/main/java/android/icu/impl/SoftCache.java
@@ -27,7 +27,6 @@
  *
  * @author Markus Scherer, Mark Davis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class SoftCache<K, V, D> extends CacheBase<K, V, D> {
     @Override
diff --git a/android_icu4j/src/main/java/android/icu/impl/SortedSetRelation.java b/android_icu4j/src/main/java/android/icu/impl/SortedSetRelation.java
index 4bd0c33..68e6d4c 100644
--- a/android_icu4j/src/main/java/android/icu/impl/SortedSetRelation.java
+++ b/android_icu4j/src/main/java/android/icu/impl/SortedSetRelation.java
@@ -19,7 +19,6 @@
  * Computationally efficient determination of the relationship between
  * two SortedSets.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SortedSetRelation {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/StringPrepDataReader.java b/android_icu4j/src/main/java/android/icu/impl/StringPrepDataReader.java
index f607200..79adb34 100644
--- a/android_icu4j/src/main/java/android/icu/impl/StringPrepDataReader.java
+++ b/android_icu4j/src/main/java/android/icu/impl/StringPrepDataReader.java
@@ -23,7 +23,6 @@
  * To change the template for this generated type comment go to
  * Window>Preferences>Java>Code Generation>Code and Comments
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class StringPrepDataReader implements ICUBinary.Authenticate {
     private final static boolean debug = ICUDebug.enabled("NormalizerDataReader");
diff --git a/android_icu4j/src/main/java/android/icu/impl/StringRange.java b/android_icu4j/src/main/java/android/icu/impl/StringRange.java
index 094099e..eec4ebe 100644
--- a/android_icu4j/src/main/java/android/icu/impl/StringRange.java
+++ b/android_icu4j/src/main/java/android/icu/impl/StringRange.java
@@ -21,7 +21,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @SuppressWarnings("deprecation")
 public class StringRange {
diff --git a/android_icu4j/src/main/java/android/icu/impl/StringUCharacterIterator.java b/android_icu4j/src/main/java/android/icu/impl/StringUCharacterIterator.java
index ed766a5..3d844ac 100644
--- a/android_icu4j/src/main/java/android/icu/impl/StringUCharacterIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/StringUCharacterIterator.java
@@ -14,7 +14,6 @@
  * ReplaceableUCharacterIterator because it is not easy to do a fast setText. 
  * @author synwee
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 // TODO: Investivate if setText is a feature required by users so that we can 
 // move this method to the base class!
diff --git a/android_icu4j/src/main/java/android/icu/impl/TZDBTimeZoneNames.java b/android_icu4j/src/main/java/android/icu/impl/TZDBTimeZoneNames.java
index 268b93c..fb26d72 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TZDBTimeZoneNames.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TZDBTimeZoneNames.java
@@ -36,7 +36,6 @@
  * the locale in the constructor is used as a hint for resolving
  * these ambiguous names.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TZDBTimeZoneNames extends TimeZoneNames {
     private static final long serialVersionUID = 1L;
diff --git a/android_icu4j/src/main/java/android/icu/impl/TextTrieMap.java b/android_icu4j/src/main/java/android/icu/impl/TextTrieMap.java
index 283fd4e..ba52a44 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TextTrieMap.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TextTrieMap.java
@@ -18,7 +18,6 @@
  * TextTrieMap is a trie implementation for supporting
  * fast prefix match for the key.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TextTrieMap<V> {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/TimeZoneAdapter.java b/android_icu4j/src/main/java/android/icu/impl/TimeZoneAdapter.java
index 0514e99..42d6638 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TimeZoneAdapter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TimeZoneAdapter.java
@@ -27,7 +27,6 @@
  * @see android.icu.util.TimeZone#setDefault
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeZoneAdapter extends java.util.TimeZone {
  
diff --git a/android_icu4j/src/main/java/android/icu/impl/TimeZoneGenericNames.java b/android_icu4j/src/main/java/android/icu/impl/TimeZoneGenericNames.java
index 322d922..a48d86b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TimeZoneGenericNames.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TimeZoneGenericNames.java
@@ -40,7 +40,6 @@
  * It is not recommended to use this class directly, instead
  * use android.icu.text.TimeZoneFormat.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeZoneGenericNames implements Serializable, Freezable<TimeZoneGenericNames> {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesFactoryImpl.java b/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesFactoryImpl.java
index 221a7f3..837d97e 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesFactoryImpl.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesFactoryImpl.java
@@ -14,7 +14,6 @@
 /**
  * The implementation class of <code>TimeZoneNames.Factory</code>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeZoneNamesFactoryImpl extends Factory {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesImpl.java b/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesImpl.java
index 9375f26..575c41f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesImpl.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TimeZoneNamesImpl.java
@@ -36,7 +36,6 @@
 /**
  * The standard ICU implementation of TimeZoneNames
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeZoneNamesImpl extends TimeZoneNames {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/Trie.java b/android_icu4j/src/main/java/android/icu/impl/Trie.java
index bce0695..f96faf6 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Trie.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Trie.java
@@ -42,7 +42,6 @@
  * @see android.icu.impl.CharTrie
  * @see android.icu.impl.IntTrie
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class Trie
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/Trie2.java b/android_icu4j/src/main/java/android/icu/impl/Trie2.java
index 03cba24..965a2bc 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Trie2.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Trie2.java
@@ -26,7 +26,6 @@
  *
  * This is the second common version of a Unicode trie (hence the name Trie2).
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  * 
  */
 public abstract class Trie2 implements Iterable<Trie2.Range> {
diff --git a/android_icu4j/src/main/java/android/icu/impl/Trie2Writable.java b/android_icu4j/src/main/java/android/icu/impl/Trie2Writable.java
index 062e5eb..4663540 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Trie2Writable.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Trie2Writable.java
@@ -13,7 +13,6 @@
  * A Trie2Writable is a modifiable, or build-time Trie2.
  * Functions for reading data from the Trie are all from class Trie2.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  * 
  */
 public class Trie2Writable extends Trie2 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/Trie2_16.java b/android_icu4j/src/main/java/android/icu/impl/Trie2_16.java
index c2dc721..eb7d365 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Trie2_16.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Trie2_16.java
@@ -28,7 +28,6 @@
  * the intent that applications might gain a little extra performance, when compared
  * with calling the same methods via the abstract UTrie2 base class.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Trie2_16 extends Trie2 {
     
diff --git a/android_icu4j/src/main/java/android/icu/impl/Trie2_32.java b/android_icu4j/src/main/java/android/icu/impl/Trie2_32.java
index a9fb118..72ddf11 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Trie2_32.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Trie2_32.java
@@ -27,7 +27,6 @@
  * the intent that applications might gain a little extra performance, when compared
  * with calling the same methods via the abstract UTrie2 base class.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public class Trie2_32 extends Trie2 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/TrieBuilder.java b/android_icu4j/src/main/java/android/icu/impl/TrieBuilder.java
index 6364b31..eb9febe 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TrieBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TrieBuilder.java
@@ -29,7 +29,6 @@
  * This is a direct port from the ICU4C version
  * @author             Syn Wee Quek
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TrieBuilder
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/TrieIterator.java b/android_icu4j/src/main/java/android/icu/impl/TrieIterator.java
index e3305da..d2ebf33 100644
--- a/android_icu4j/src/main/java/android/icu/impl/TrieIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/TrieIterator.java
@@ -84,7 +84,6 @@
  * @author synwee
  * @see android.icu.impl.Trie
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TrieIterator implements RangeValueIterator
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/UBiDiProps.java b/android_icu4j/src/main/java/android/icu/impl/UBiDiProps.java
index 39847cb..2dd9227 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UBiDiProps.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UBiDiProps.java
@@ -31,7 +31,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UBiDiProps {
     // constructors etc. --------------------------------------------------- ***
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCaseProps.java b/android_icu4j/src/main/java/android/icu/impl/UCaseProps.java
index e3c4be4..3b1efbe 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCaseProps.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCaseProps.java
@@ -33,7 +33,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UCaseProps {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCharArrayIterator.java b/android_icu4j/src/main/java/android/icu/impl/UCharArrayIterator.java
index 01f400d..2ef0e0a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCharArrayIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCharArrayIterator.java
@@ -14,7 +14,6 @@
 /**
  * @author Doug Felt
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  *
  */
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCharacterIteratorWrapper.java b/android_icu4j/src/main/java/android/icu/impl/UCharacterIteratorWrapper.java
index c283a2e..4fcc85d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCharacterIteratorWrapper.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCharacterIteratorWrapper.java
@@ -17,7 +17,6 @@
  * CharacterIterator protocol
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UCharacterIteratorWrapper implements CharacterIterator{
     
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCharacterName.java b/android_icu4j/src/main/java/android/icu/impl/UCharacterName.java
index aa0b4ac..5a4bd7d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCharacterName.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCharacterName.java
@@ -32,7 +32,6 @@
 * Note : 0 - 0x1F are control characters without names in Unicode 3.0
 * @author Syn Wee Quek
 * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 */
 
 public final class UCharacterName
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCharacterNameChoice.java b/android_icu4j/src/main/java/android/icu/impl/UCharacterNameChoice.java
index 276c2ff..bc512e1 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCharacterNameChoice.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCharacterNameChoice.java
@@ -16,7 +16,6 @@
 * Arguments for <a href=UCharacterName.html>UCharacterName</a>
 * @author Syn Wee Quek
 * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 */
 
 public interface UCharacterNameChoice
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCharacterProperty.java b/android_icu4j/src/main/java/android/icu/impl/UCharacterProperty.java
index f3b6e9e..ebfcb2b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCharacterProperty.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCharacterProperty.java
@@ -38,7 +38,6 @@
 * <a href=UCharacter.html>UCharacter</a>.</p>
 * @author Syn Wee Quek
 * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 */
 
 public final class UCharacterProperty
diff --git a/android_icu4j/src/main/java/android/icu/impl/UCharacterUtility.java b/android_icu4j/src/main/java/android/icu/impl/UCharacterUtility.java
index 51f9150..57fc793 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UCharacterUtility.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UCharacterUtility.java
@@ -12,7 +12,6 @@
 * parsing functions. Does not have an analog in the JDK.
 * @author Syn Wee Quek
 * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 */
 
 public final class UCharacterUtility
diff --git a/android_icu4j/src/main/java/android/icu/impl/UPropertyAliases.java b/android_icu4j/src/main/java/android/icu/impl/UPropertyAliases.java
index fc4dc6b..997905a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UPropertyAliases.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UPropertyAliases.java
@@ -43,7 +43,6 @@
  *
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UPropertyAliases {
     // Byte offsets from the start of the data, after the generic header.
diff --git a/android_icu4j/src/main/java/android/icu/impl/URLHandler.java b/android_icu4j/src/main/java/android/icu/impl/URLHandler.java
index 0a2f2cd..b2a64ef 100644
--- a/android_icu4j/src/main/java/android/icu/impl/URLHandler.java
+++ b/android_icu4j/src/main/java/android/icu/impl/URLHandler.java
@@ -26,7 +26,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class URLHandler {
     public static final String PROPNAME = "urlhandler.props";
diff --git a/android_icu4j/src/main/java/android/icu/impl/UResource.java b/android_icu4j/src/main/java/android/icu/impl/UResource.java
index ce045f6..8d41a00 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UResource.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UResource.java
@@ -18,7 +18,6 @@
 /**
  * ICU resource bundle key and value types.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UResource {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/USerializedSet.java b/android_icu4j/src/main/java/android/icu/impl/USerializedSet.java
index f60c9f3..ae3af64 100644
--- a/android_icu4j/src/main/java/android/icu/impl/USerializedSet.java
+++ b/android_icu4j/src/main/java/android/icu/impl/USerializedSet.java
@@ -19,7 +19,6 @@
  *
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public final class USerializedSet {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/UTS46.java b/android_icu4j/src/main/java/android/icu/impl/UTS46.java
index c946047..7dcfdd9 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UTS46.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UTS46.java
@@ -30,7 +30,6 @@
  * UTS #46 (IDNA2008) implementation.
  * @author Markus Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UTS46 extends IDNA {
     public UTS46(int options) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/UnicodeRegex.java b/android_icu4j/src/main/java/android/icu/impl/UnicodeRegex.java
index 59a43df..11676d7 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UnicodeRegex.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UnicodeRegex.java
@@ -38,7 +38,6 @@
  *
  * @author markdavis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UnicodeRegex implements Cloneable, Freezable<UnicodeRegex>, StringTransform {
     // Note: we don't currently have any state, but intend to in the future,
diff --git a/android_icu4j/src/main/java/android/icu/impl/UnicodeSetStringSpan.java b/android_icu4j/src/main/java/android/icu/impl/UnicodeSetStringSpan.java
index d3d208d..1c8d6d2 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UnicodeSetStringSpan.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UnicodeSetStringSpan.java
@@ -23,7 +23,6 @@
  */
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UnicodeSetStringSpan {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/Utility.java b/android_icu4j/src/main/java/android/icu/impl/Utility.java
index 17b3049..391fb1f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/Utility.java
+++ b/android_icu4j/src/main/java/android/icu/impl/Utility.java
@@ -19,7 +19,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Utility {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/UtilityExtensions.java b/android_icu4j/src/main/java/android/icu/impl/UtilityExtensions.java
index 6489af3..c7f9795 100644
--- a/android_icu4j/src/main/java/android/icu/impl/UtilityExtensions.java
+++ b/android_icu4j/src/main/java/android/icu/impl/UtilityExtensions.java
@@ -14,7 +14,6 @@
 /**
  * @author Ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 //This class contains utility functions so testing not needed
 ///CLOVER:OFF
diff --git a/android_icu4j/src/main/java/android/icu/impl/ZoneMeta.java b/android_icu4j/src/main/java/android/icu/impl/ZoneMeta.java
index 62bb6a1..8898db1 100644
--- a/android_icu4j/src/main/java/android/icu/impl/ZoneMeta.java
+++ b/android_icu4j/src/main/java/android/icu/impl/ZoneMeta.java
@@ -39,7 +39,6 @@
  *
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ZoneMeta {
     private static final boolean ASSERT = false;
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/BOCSU.java b/android_icu4j/src/main/java/android/icu/impl/coll/BOCSU.java
index 97158f4..26f5b8d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/BOCSU.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/BOCSU.java
@@ -76,7 +76,6 @@
  *
  * @author Syn Wee Quek
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class BOCSU 
 {      
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/Collation.java b/android_icu4j/src/main/java/android/icu/impl/coll/Collation.java
index b301b77..77c129a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/Collation.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/Collation.java
@@ -18,7 +18,6 @@
  * Data structures except for expansion tables store 32-bit CEs which are
  * either specials (see tags below) or are compact forms of 64-bit CEs.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Collation {
     /** UChar32 U_SENTINEL.
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationBuilder.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationBuilder.java
index 6d60bd3..5fc9c37 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationBuilder.java
@@ -27,7 +27,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationBuilder extends CollationRuleParser.Sink {
     private static final boolean DEBUG = false;
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationCompare.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationCompare.java
index c921b42..e1435d2 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationCompare.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationCompare.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationCompare /* all static */ {
     public static int compareUpToQuaternary(CollationIterator left, CollationIterator right,
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationData.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationData.java
index c2750b0..819557a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationData.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationData.java
@@ -26,7 +26,6 @@
  *
  * Includes data for the collation base (root/default), aliased if this is not the base.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationData {
     // Note: The ucadata.icu loader could discover the reserved ranges by setting an array
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationFCD.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationFCD.java
index c491234..9672196 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationFCD.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationFCD.java
@@ -46,7 +46,6 @@
  * hasTccc(trail)=false:
  * It should only be tested for unpaired trail surrogates which are FCD-inert.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationFCD {
     public static boolean hasLccc(int c) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationFastLatin.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationFastLatin.java
index 6015ff6..75ebb6a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationFastLatin.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationFastLatin.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationFastLatin /* all static */ {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationIterator.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationIterator.java
index acc47f3..c654d48 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationIterator.java
@@ -24,7 +24,6 @@
  * When a method returns a code point value, it must be in 0..10FFFF,
  * except it can be negative as a sentinel value.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class CollationIterator {
     private static final class CEBuffer {
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationKeys.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationKeys.java
index bbbe19b..49655fe 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationKeys.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationKeys.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationKeys /* all methods are static */ {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationLoader.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationLoader.java
index f9086fd..72cbc37 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationLoader.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationLoader.java
@@ -27,7 +27,6 @@
 /**
  * Convenience string denoting the Collation data tree
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationLoader {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationRoot.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationRoot.java
index b24a450..4382f69 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationRoot.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationRoot.java
@@ -22,7 +22,6 @@
 /**
  * Collation root provider.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationRoot {  // purely static
     private static final CollationTailoring rootSingleton;
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationRootElements.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationRootElements.java
index eb504e5..61999c7 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationRootElements.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationRootElements.java
@@ -19,7 +19,6 @@
  *
  * This class takes and returns 16-bit secondary and tertiary weights.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationRootElements {
     public CollationRootElements(long[] rootElements) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationRuleParser.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationRuleParser.java
index 5122078..9406300 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationRuleParser.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationRuleParser.java
@@ -27,7 +27,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationRuleParser {
     /** Special reset positions. */
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationSettings.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationSettings.java
index 1625b3c..d76e416 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationSettings.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationSettings.java
@@ -20,7 +20,6 @@
  * Collation settings/options/attributes.
  * These are the values that can be changed via API.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationSettings extends SharedObject {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationTailoring.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationTailoring.java
index 0b3aa74..9ab0010 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationTailoring.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationTailoring.java
@@ -30,7 +30,6 @@
  * It is logically immutable: Do not modify its values.
  * The fields are public for convenience.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationTailoring {
     CollationTailoring(SharedObject.Reference<CollationSettings> baseSettings) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/CollationWeights.java b/android_icu4j/src/main/java/android/icu/impl/coll/CollationWeights.java
index 829be87..d93858d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/CollationWeights.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/CollationWeights.java
@@ -20,7 +20,6 @@
  * Allocates n collation element weights between two exclusive limits.
  * Used only internally by the collation tailoring builder.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationWeights {
     public CollationWeights() {}
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/ContractionsAndExpansions.java b/android_icu4j/src/main/java/android/icu/impl/coll/ContractionsAndExpansions.java
index 10c7e91..17c56bd 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/ContractionsAndExpansions.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/ContractionsAndExpansions.java
@@ -21,7 +21,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ContractionsAndExpansions {
     // C++: The following fields are @internal, only public for access by callback.
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/FCDIterCollationIterator.java b/android_icu4j/src/main/java/android/icu/impl/coll/FCDIterCollationIterator.java
index de91de9..8e5ed20 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/FCDIterCollationIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/FCDIterCollationIterator.java
@@ -18,7 +18,6 @@
 /**
  * Incrementally checks the input text for FCD and normalizes where necessary.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class FCDIterCollationIterator extends IterCollationIterator {
     public FCDIterCollationIterator(CollationData data, boolean numeric,
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/FCDUTF16CollationIterator.java b/android_icu4j/src/main/java/android/icu/impl/coll/FCDUTF16CollationIterator.java
index 316c1de..753ede6 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/FCDUTF16CollationIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/FCDUTF16CollationIterator.java
@@ -17,7 +17,6 @@
 /**
  * Incrementally checks the input text for FCD and normalizes where necessary.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class FCDUTF16CollationIterator extends UTF16CollationIterator {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/IterCollationIterator.java b/android_icu4j/src/main/java/android/icu/impl/coll/IterCollationIterator.java
index efd97a9..da3697a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/IterCollationIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/IterCollationIterator.java
@@ -19,7 +19,6 @@
  * Handles normalized text, with length or NUL-terminated.
  * Unnormalized text is handled by a subclass.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class IterCollationIterator extends CollationIterator {
     public IterCollationIterator(CollationData d, boolean numeric, UCharacterIterator ui) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/SharedObject.java b/android_icu4j/src/main/java/android/icu/impl/coll/SharedObject.java
index e3eccfb..9e53fcb 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/SharedObject.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/SharedObject.java
@@ -91,7 +91,6 @@
  * TODO: Consider making this more widely available inside ICU,
  * or else adopting a different model.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SharedObject implements Cloneable {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/TailoredSet.java b/android_icu4j/src/main/java/android/icu/impl/coll/TailoredSet.java
index 7bb7487..146e19b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/TailoredSet.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/TailoredSet.java
@@ -35,7 +35,6 @@
  * - That would only work if we have the rule string, and we allow users to
  *   omit the rule string from data files.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class TailoredSet {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/UTF16CollationIterator.java b/android_icu4j/src/main/java/android/icu/impl/coll/UTF16CollationIterator.java
index 5bf695b..f92c693 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/UTF16CollationIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/UTF16CollationIterator.java
@@ -17,7 +17,6 @@
  * Handles normalized UTF-16 text, with length or NUL-terminated.
  * Unnormalized text is handled by a subclass.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UTF16CollationIterator extends CollationIterator {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/UVector32.java b/android_icu4j/src/main/java/android/icu/impl/coll/UVector32.java
index 74279b6..6fc86ac 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/UVector32.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/UVector32.java
@@ -15,7 +15,6 @@
 // If & when we start using something else, we might keep this as a thin wrapper for porting.
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UVector32 {
     public UVector32() {}
diff --git a/android_icu4j/src/main/java/android/icu/impl/coll/UVector64.java b/android_icu4j/src/main/java/android/icu/impl/coll/UVector64.java
index fc6585b..e83379c 100644
--- a/android_icu4j/src/main/java/android/icu/impl/coll/UVector64.java
+++ b/android_icu4j/src/main/java/android/icu/impl/coll/UVector64.java
@@ -15,7 +15,6 @@
 // If & when we start using something else, we might keep this as a thin wrapper for porting.
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class UVector64 {
     public UVector64() {}
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle.java
index 7e2bb43..3c0259c 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle extends ListResourceBundle {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da.java
index 16786bb..23242eb 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_da extends ListResourceBundle
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da_DK.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da_DK.java
index df888f2..a350c8d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da_DK.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_da_DK.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_da_DK extends ListResourceBundle
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de.java
index ab26933..ac85f2c 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_de extends ListResourceBundle {
     static private final Object[][] fContents = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_AT.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_AT.java
index a30f4b3..8cff46d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_AT.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_AT.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_de_AT extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_DE.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_DE.java
index 48219a2..b374c26 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_DE.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_de_DE.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_de_DE extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el.java
index 6373a60..47d469f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_el extends ListResourceBundle {
     static private final Object[][] fContents =
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el_GR.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el_GR.java
index 2d52134..93d52d8 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el_GR.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_el_GR.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_el_GR extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en.java
index 75047ae..3b0ff27 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_en extends ListResourceBundle {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_CA.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_CA.java
index 5b86887..81b1fff 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_CA.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_CA.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_en_CA extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_GB.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_GB.java
index 10c476b..ae39142 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_GB.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_GB.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_en_GB extends ListResourceBundle
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_US.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_US.java
index 8c6f21d..f397d04 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_US.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_en_US.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_en_US extends ListResourceBundle
 {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es.java
index 9e3a62a..0c8c6f5 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_es extends ListResourceBundle {
     static private final Object[][] fContents = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es_MX.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es_MX.java
index 394b53b..f3fef09 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es_MX.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_es_MX.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_es_MX extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr.java
index aa7aba6..898594f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_fr extends ListResourceBundle {
     static private final Object[][] fContents = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_CA.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_CA.java
index ee55daa..a3ab8fc 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_CA.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_CA.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_fr_CA extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_FR.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_FR.java
index 737822c..9bbdfd0 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_FR.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_fr_FR.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_fr_FR extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it.java
index 26f6b63..321e05a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_it extends ListResourceBundle {
     static private final Object[][] fContents =
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it_IT.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it_IT.java
index 54c5e3d..d3474c8 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it_IT.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_it_IT.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_it_IT extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw.java
index 18f74d4..723f307 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_iw extends ListResourceBundle {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw_IL.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw_IL.java
index 6f9f2ed..cae82d1 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw_IL.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_iw_IL.java
@@ -15,7 +15,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_iw_IL extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_ja_JP.java b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_ja_JP.java
index 18592e8..4ae3685 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_ja_JP.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/HolidayBundle_ja_JP.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class HolidayBundle_ja_JP extends ListResourceBundle {
     static private final Holiday[] fHolidays = {
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/ResourceReader.java b/android_icu4j/src/main/java/android/icu/impl/data/ResourceReader.java
index af50c4e..89a7c7d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/ResourceReader.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/ResourceReader.java
@@ -32,7 +32,6 @@
  *
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ResourceReader implements Closeable {
     private BufferedReader reader = null;
diff --git a/android_icu4j/src/main/java/android/icu/impl/data/TokenIterator.java b/android_icu4j/src/main/java/android/icu/impl/data/TokenIterator.java
index f18bb5b..442af6f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/data/TokenIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/data/TokenIterator.java
@@ -26,7 +26,6 @@
  *
  * <p>2015-sep-03 TODO: Only used in android.icu.dev.test.format, move there.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TokenIterator {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/BasicDurationFormat.java b/android_icu4j/src/main/java/android/icu/impl/duration/BasicDurationFormat.java
index d339536..35cc64d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/BasicDurationFormat.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/BasicDurationFormat.java
@@ -16,7 +16,6 @@
 /**
  * @author srl
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class BasicDurationFormat extends DurationFormat {
     
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterFactory.java b/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterFactory.java
index 9538b8a..d3888c9 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterFactory.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterFactory.java
@@ -53,7 +53,6 @@
  *
  * </ul>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class BasicPeriodFormatterFactory implements PeriodFormatterFactory {
   private final PeriodFormatterDataService ds;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterService.java b/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterService.java
index 59d8434..4ed98e1 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterService.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/BasicPeriodFormatterService.java
@@ -17,7 +17,6 @@
  * An implementation of PeriodFormatterService that constructs a
  * BasicPeriodFormatterFactory.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class BasicPeriodFormatterService implements PeriodFormatterService {
     private static BasicPeriodFormatterService instance;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/DateFormatter.java b/android_icu4j/src/main/java/android/icu/impl/duration/DateFormatter.java
index 47e2bba..ba60e73 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/DateFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/DateFormatter.java
@@ -15,7 +15,6 @@
  * Abstract formatter for dates.  Differs from DateFormat in that it
  * provides <code>withLocale</code> and <code>withTimeZone</code> methods.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface DateFormatter {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatter.java b/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatter.java
index 14b74c0..c5306ff 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatter.java
@@ -14,7 +14,6 @@
 /**
  * Formatter for durations in milliseconds.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface DurationFormatter {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatterFactory.java b/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatterFactory.java
index 7f2d66c..ffa1614 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatterFactory.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/DurationFormatterFactory.java
@@ -17,7 +17,6 @@
  * Setters on the factory mutate the factory and return it,
  * for chaining.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface DurationFormatterFactory {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/Period.java b/android_icu4j/src/main/java/android/icu/impl/duration/Period.java
index 105ba9f..da74a37 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/Period.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/Period.java
@@ -25,7 +25,6 @@
  * Period p1 = Period.at(3, WEEK).and(2, DAY).inFuture();
  * Period p2 = p1.and(12, HOUR);</pre>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class Period {
   final byte timeLimit;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilder.java b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilder.java
index d9642c9..5fd720b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilder.java
@@ -18,7 +18,6 @@
  * <p>
  * None of the operations on PeriodBuilder change the current builder.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface PeriodBuilder {
   /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilderFactory.java b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilderFactory.java
index 517c27d..797f422 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilderFactory.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodBuilderFactory.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface PeriodBuilderFactory {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatter.java b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatter.java
index 2e1b3da..7c2c69b 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatter.java
@@ -21,7 +21,6 @@
  * @see PeriodBuilder
  * @see PeriodFormatterFactory
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface PeriodFormatter {
   /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterFactory.java b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterFactory.java
index 98bb59f..ff33991 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterFactory.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterFactory.java
@@ -15,7 +15,6 @@
  * Setters on the factory mutate the factory and return it,
  * for chaining.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface PeriodFormatterFactory {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterService.java b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterService.java
index b96182f..719c83a 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterService.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/PeriodFormatterService.java
@@ -14,7 +14,6 @@
  * Provider of Factory instances for building PeriodBuilders, PeriodFormatters,
  * and DurationFormatters.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface PeriodFormatterService {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnit.java b/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnit.java
index b7c5e4c..b034179 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnit.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnit.java
@@ -12,7 +12,6 @@
  * 'Enum' for individual time units.  Not an actual enum so that it can be 
  * used by Java 1.4.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class TimeUnit {
   /** The name of this unit, a key, not for localization. */
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnitConstants.java b/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnitConstants.java
index 5e8e4a8..9e7bb7f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnitConstants.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/TimeUnitConstants.java
@@ -11,7 +11,6 @@
 /**
  * Easy access to time units for Java 1.4, which doesn't have static imports.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public interface TimeUnitConstants {
   /** Represents a year. */ 
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/DataRecord.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/DataRecord.java
index d61b9ac..c4b53f6 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/DataRecord.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/DataRecord.java
@@ -16,7 +16,6 @@
  * package-private for ease of access. This is a struct, it knows how to read
  * and write itself to/from simple XML, that's all.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class DataRecord {
     byte pl;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterData.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterData.java
index 53253ed..cba9eb8 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterData.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterData.java
@@ -31,7 +31,6 @@
  * An instance of PeriodFormatterData is usually created by requesting
  * data for a given locale from an PeriodFormatterDataService.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class PeriodFormatterData {
   final DataRecord dr;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterDataService.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterDataService.java
index cc24a6a..c53fe13 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterDataService.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/PeriodFormatterDataService.java
@@ -14,7 +14,6 @@
  * Abstract service for PeriodFormatterData, which defines the localization data
  * used by period formatters.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class PeriodFormatterDataService {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/ResourceBasedPeriodFormatterDataService.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/ResourceBasedPeriodFormatterDataService.java
index 41dac9b..c6d3493 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/ResourceBasedPeriodFormatterDataService.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/ResourceBasedPeriodFormatterDataService.java
@@ -30,7 +30,6 @@
  * after the locale, for example, 'pfd_he_IL.txt' specifies an period formatter
  * data file for Hebrew as spoken in Israel. Data is in a JSON-like format.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ResourceBasedPeriodFormatterDataService extends
         PeriodFormatterDataService {
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/Utils.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/Utils.java
index ed8f91c..88d1a5e 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/Utils.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/Utils.java
@@ -12,7 +12,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class Utils {
   public static final Locale localeFromString(String s) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordReader.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordReader.java
index 852ee34..bea1dcf 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordReader.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordReader.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class XMLRecordReader implements RecordReader {
     private Reader r;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordWriter.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordWriter.java
index d27a1a9..52e16bc 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordWriter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/XMLRecordWriter.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class XMLRecordWriter implements RecordWriter {
     private Writer w;
diff --git a/android_icu4j/src/main/java/android/icu/impl/duration/impl/YMDDateFormatter.java b/android_icu4j/src/main/java/android/icu/impl/duration/impl/YMDDateFormatter.java
index 86537dd..8725597 100644
--- a/android_icu4j/src/main/java/android/icu/impl/duration/impl/YMDDateFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/impl/duration/impl/YMDDateFormatter.java
@@ -18,7 +18,6 @@
 /**
  * A DateFormatter that formats the requested date fields.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class YMDDateFormatter implements DateFormatter {
   private String requestedFields;
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/AsciiUtil.java b/android_icu4j/src/main/java/android/icu/impl/locale/AsciiUtil.java
index f92f1ff..c8f6c94 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/AsciiUtil.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/AsciiUtil.java
@@ -9,7 +9,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class AsciiUtil {
     public static boolean caseIgnoreMatch(String s1, String s2) {
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/BaseLocale.java b/android_icu4j/src/main/java/android/icu/impl/locale/BaseLocale.java
index 47b8836..ef53fc7 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/BaseLocale.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/BaseLocale.java
@@ -11,7 +11,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class BaseLocale {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/Extension.java b/android_icu4j/src/main/java/android/icu/impl/locale/Extension.java
index ffef3bb..088018f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/Extension.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/Extension.java
@@ -10,7 +10,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class Extension {
     private char _key;
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/InternalLocaleBuilder.java b/android_icu4j/src/main/java/android/icu/impl/locale/InternalLocaleBuilder.java
index 78c1898..b90f22f 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/InternalLocaleBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/InternalLocaleBuilder.java
@@ -15,7 +15,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class InternalLocaleBuilder {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/KeyTypeData.java b/android_icu4j/src/main/java/android/icu/impl/locale/KeyTypeData.java
index e2055ea..37bc99d 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/KeyTypeData.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/KeyTypeData.java
@@ -22,7 +22,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class KeyTypeData {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/LanguageTag.java b/android_icu4j/src/main/java/android/icu/impl/locale/LanguageTag.java
index f669475..e2a58e6 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/LanguageTag.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/LanguageTag.java
@@ -16,7 +16,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LanguageTag {
     private static final boolean JDKIMPL = false;
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/LocaleExtensions.java b/android_icu4j/src/main/java/android/icu/impl/locale/LocaleExtensions.java
index 6a4d541..3f3e2bd 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/LocaleExtensions.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/LocaleExtensions.java
@@ -21,7 +21,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocaleExtensions {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/LocaleObjectCache.java b/android_icu4j/src/main/java/android/icu/impl/locale/LocaleObjectCache.java
index d061dcc..5944c42 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/LocaleObjectCache.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/LocaleObjectCache.java
@@ -13,7 +13,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class LocaleObjectCache<K, V> {
     private ConcurrentHashMap<K, CacheEntry<K, V>> _map;
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/LocaleSyntaxException.java b/android_icu4j/src/main/java/android/icu/impl/locale/LocaleSyntaxException.java
index 338790d..3f68c18 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/LocaleSyntaxException.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/LocaleSyntaxException.java
@@ -9,7 +9,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocaleSyntaxException extends Exception {
 
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/ParseStatus.java b/android_icu4j/src/main/java/android/icu/impl/locale/ParseStatus.java
index 0c66244..f9f57f5 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/ParseStatus.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/ParseStatus.java
@@ -9,7 +9,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ParseStatus {
     int _parseLength = 0;
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/StringTokenIterator.java b/android_icu4j/src/main/java/android/icu/impl/locale/StringTokenIterator.java
index 0ae44c3..56687e4 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/StringTokenIterator.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/StringTokenIterator.java
@@ -9,7 +9,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class StringTokenIterator {
     private String _text;
diff --git a/android_icu4j/src/main/java/android/icu/impl/locale/UnicodeLocaleExtension.java b/android_icu4j/src/main/java/android/icu/impl/locale/UnicodeLocaleExtension.java
index b1df168..725b416 100644
--- a/android_icu4j/src/main/java/android/icu/impl/locale/UnicodeLocaleExtension.java
+++ b/android_icu4j/src/main/java/android/icu/impl/locale/UnicodeLocaleExtension.java
@@ -17,7 +17,6 @@
 
 /**
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UnicodeLocaleExtension extends Extension {
     public static final char SINGLETON = 'u';
diff --git a/android_icu4j/src/main/java/android/icu/impl/text/RbnfScannerProviderImpl.java b/android_icu4j/src/main/java/android/icu/impl/text/RbnfScannerProviderImpl.java
index d7b4e39..94f4be9 100644
--- a/android_icu4j/src/main/java/android/icu/impl/text/RbnfScannerProviderImpl.java
+++ b/android_icu4j/src/main/java/android/icu/impl/text/RbnfScannerProviderImpl.java
@@ -25,7 +25,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class RbnfScannerProviderImpl implements RbnfLenientScannerProvider {
diff --git a/android_icu4j/src/main/java/android/icu/lang/CharSequences.java b/android_icu4j/src/main/java/android/icu/lang/CharSequences.java
index 996ad5a..314ba00 100644
--- a/android_icu4j/src/main/java/android/icu/lang/CharSequences.java
+++ b/android_icu4j/src/main/java/android/icu/lang/CharSequences.java
@@ -24,7 +24,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class CharSequences {
diff --git a/android_icu4j/src/main/java/android/icu/lang/UCharacter.java b/android_icu4j/src/main/java/android/icu/lang/UCharacter.java
index 4665845..c62093c 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UCharacter.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UCharacter.java
@@ -146,7 +146,6 @@
  * </p>
  * @author Syn Wee Quek
  * @see android.icu.lang.UCharacterEnums
- * @hide All android.icu classes are currently hidden
  */
 
 public final class UCharacter implements ECharacterCategory, ECharacterDirection
diff --git a/android_icu4j/src/main/java/android/icu/lang/UCharacterCategory.java b/android_icu4j/src/main/java/android/icu/lang/UCharacterCategory.java
index c70284e..6cdc4e6 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UCharacterCategory.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UCharacterCategory.java
@@ -25,7 +25,6 @@
  * This class is not subclassable
  * </p>
  * @author Syn Wee Quek
- * @hide All android.icu classes are currently hidden
  */
 
 public final class UCharacterCategory implements ECharacterCategory
diff --git a/android_icu4j/src/main/java/android/icu/lang/UCharacterDirection.java b/android_icu4j/src/main/java/android/icu/lang/UCharacterDirection.java
index b01c933..b0722fd 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UCharacterDirection.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UCharacterDirection.java
@@ -17,7 +17,6 @@
  * This class is not subclassable
  * </p>
  * @author Syn Wee Quek
- * @hide All android.icu classes are currently hidden
  */
 
 public final class UCharacterDirection implements ECharacterDirection {
diff --git a/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java b/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java
index 103f406..8f6cd09 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java
@@ -10,7 +10,6 @@
 
 /**
  * A container for the different 'enumerated types' used by UCharacter.
- * @hide All android.icu classes are currently hidden
  */
 public class UCharacterEnums {
 
diff --git a/android_icu4j/src/main/java/android/icu/lang/UProperty.java b/android_icu4j/src/main/java/android/icu/lang/UProperty.java
index 5e57bfe..d2dbbac 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UProperty.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UProperty.java
@@ -25,7 +25,6 @@
  * available. Check UCharacter.getUnicodeVersion() to be sure.</p>
  * @author Syn Wee Quek
  * @see android.icu.lang.UCharacter
- * @hide All android.icu classes are currently hidden
  */
 public interface UProperty
 {
diff --git a/android_icu4j/src/main/java/android/icu/lang/UScript.java b/android_icu4j/src/main/java/android/icu/lang/UScript.java
index 6d6ec1d..576c410 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UScript.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UScript.java
@@ -38,7 +38,6 @@
  * to ensure that their script names are stable and match the names of the constants.
  * Script codes like Latf and Aran that are not subject to separate encoding
  * may be added at any time.
- * @hide All android.icu classes are currently hidden
  */
 public final class UScript {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/lang/UScriptRun.java b/android_icu4j/src/main/java/android/icu/lang/UScriptRun.java
index 7dcc90a..d52d2bc 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UScriptRun.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UScriptRun.java
@@ -50,7 +50,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public final class UScriptRun
diff --git a/android_icu4j/src/main/java/android/icu/math/BigDecimal.java b/android_icu4j/src/main/java/android/icu/math/BigDecimal.java
index aa2569b..aae640a 100644
--- a/android_icu4j/src/main/java/android/icu/math/BigDecimal.java
+++ b/android_icu4j/src/main/java/android/icu/math/BigDecimal.java
@@ -217,7 +217,6 @@
  * 
  * @see MathContext
  * @author Mike Cowlishaw
- * @hide All android.icu classes are currently hidden
  */
 
 public class BigDecimal extends java.lang.Number implements java.io.Serializable, java.lang.Comparable<BigDecimal> {
diff --git a/android_icu4j/src/main/java/android/icu/math/MathContext.java b/android_icu4j/src/main/java/android/icu/math/MathContext.java
index c4523fe..37a5a22 100644
--- a/android_icu4j/src/main/java/android/icu/math/MathContext.java
+++ b/android_icu4j/src/main/java/android/icu/math/MathContext.java
@@ -75,7 +75,6 @@
  *
  * @see     BigDecimal
  * @author  Mike Cowlishaw
- * @hide All android.icu classes are currently hidden
  */
 
 public final class MathContext implements java.io.Serializable{
diff --git a/android_icu4j/src/main/java/android/icu/text/AlphabeticIndex.java b/android_icu4j/src/main/java/android/icu/text/AlphabeticIndex.java
index 2f5b495..74cb8f2 100644
--- a/android_icu4j/src/main/java/android/icu/text/AlphabeticIndex.java
+++ b/android_icu4j/src/main/java/android/icu/text/AlphabeticIndex.java
@@ -120,7 +120,6 @@
  * </ul>
  *
  * @author Mark Davis
- * @hide All android.icu classes are currently hidden
  */
 public final class AlphabeticIndex<V> implements Iterable<Bucket<V>> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/ArabicShaping.java b/android_icu4j/src/main/java/android/icu/text/ArabicShaping.java
index 9c5c2c2..8aa8b1f 100644
--- a/android_icu4j/src/main/java/android/icu/text/ArabicShaping.java
+++ b/android_icu4j/src/main/java/android/icu/text/ArabicShaping.java
@@ -52,7 +52,6 @@
  * or consumed either next to the affected character or at the end of the
  * text.</p>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ArabicShaping {
     private final int options;
diff --git a/android_icu4j/src/main/java/android/icu/text/ArabicShapingException.java b/android_icu4j/src/main/java/android/icu/text/ArabicShapingException.java
index 0e633d3..e68a978 100644
--- a/android_icu4j/src/main/java/android/icu/text/ArabicShapingException.java
+++ b/android_icu4j/src/main/java/android/icu/text/ArabicShapingException.java
@@ -11,7 +11,6 @@
 /**
  * Thrown by ArabicShaping when there is a shaping error.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class ArabicShapingException extends Exception {
     // generated by serialver from JDK 1.4.1_01
diff --git a/android_icu4j/src/main/java/android/icu/text/Bidi.java b/android_icu4j/src/main/java/android/icu/text/Bidi.java
index 00e16b3..ceff5a0 100644
--- a/android_icu4j/src/main/java/android/icu/text/Bidi.java
+++ b/android_icu4j/src/main/java/android/icu/text/Bidi.java
@@ -428,7 +428,6 @@
  *
  * </pre>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 /*
diff --git a/android_icu4j/src/main/java/android/icu/text/BidiClassifier.java b/android_icu4j/src/main/java/android/icu/text/BidiClassifier.java
index 8add5f9..f372467 100644
--- a/android_icu4j/src/main/java/android/icu/text/BidiClassifier.java
+++ b/android_icu4j/src/main/java/android/icu/text/BidiClassifier.java
@@ -34,7 +34,6 @@
  *
  * @see Bidi#setCustomClassifier
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public /*abstract*/ class BidiClassifier {
diff --git a/android_icu4j/src/main/java/android/icu/text/BidiRun.java b/android_icu4j/src/main/java/android/icu/text/BidiRun.java
index 77fd761..350251f 100644
--- a/android_icu4j/src/main/java/android/icu/text/BidiRun.java
+++ b/android_icu4j/src/main/java/android/icu/text/BidiRun.java
@@ -27,7 +27,6 @@
  *
  * @see android.icu.text.Bidi
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class BidiRun {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/BreakIterator.java b/android_icu4j/src/main/java/android/icu/text/BreakIterator.java
index 0456b18..c53b373 100644
--- a/android_icu4j/src/main/java/android/icu/text/BreakIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/BreakIterator.java
@@ -206,7 +206,6 @@
  * </blockquote>
  *
  * @see CharacterIterator
- * @hide All android.icu classes are currently hidden
  *
  */
 
diff --git a/android_icu4j/src/main/java/android/icu/text/CanonicalIterator.java b/android_icu4j/src/main/java/android/icu/text/CanonicalIterator.java
index 1cdea55..ce61d9c 100644
--- a/android_icu4j/src/main/java/android/icu/text/CanonicalIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/CanonicalIterator.java
@@ -40,7 +40,6 @@
  * since it has not been optimized for that situation.
  * @author M. Davis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public final class CanonicalIterator {
diff --git a/android_icu4j/src/main/java/android/icu/text/CharsetDetector.java b/android_icu4j/src/main/java/android/icu/text/CharsetDetector.java
index 63523ab..52b912e 100644
--- a/android_icu4j/src/main/java/android/icu/text/CharsetDetector.java
+++ b/android_icu4j/src/main/java/android/icu/text/CharsetDetector.java
@@ -35,7 +35,6 @@
  * ignore html or xml style markup that could otherwise obscure the content.
  * <p/>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class CharsetDetector {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/CharsetMatch.java b/android_icu4j/src/main/java/android/icu/text/CharsetMatch.java
index 093461c..a774f0c 100644
--- a/android_icu4j/src/main/java/android/icu/text/CharsetMatch.java
+++ b/android_icu4j/src/main/java/android/icu/text/CharsetMatch.java
@@ -26,7 +26,6 @@
  *        The natural ordering is based on the match confidence value.
  *
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class CharsetMatch implements Comparable<CharsetMatch> {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/ChineseDateFormat.java b/android_icu4j/src/main/java/android/icu/text/ChineseDateFormat.java
index 7764916..384d4ca 100644
--- a/android_icu4j/src/main/java/android/icu/text/ChineseDateFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/ChineseDateFormat.java
@@ -43,7 +43,6 @@
  * @author Alan Liu
  * @deprecated ICU 50 Use SimpleDateFormat instead.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class ChineseDateFormat extends SimpleDateFormat {
diff --git a/android_icu4j/src/main/java/android/icu/text/ChineseDateFormatSymbols.java b/android_icu4j/src/main/java/android/icu/text/ChineseDateFormatSymbols.java
index 019f0ab..71d8936 100644
--- a/android_icu4j/src/main/java/android/icu/text/ChineseDateFormatSymbols.java
+++ b/android_icu4j/src/main/java/android/icu/text/ChineseDateFormatSymbols.java
@@ -25,7 +25,6 @@
  * @author Alan Liu
  * @deprecated ICU 50 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class ChineseDateFormatSymbols extends DateFormatSymbols {
diff --git a/android_icu4j/src/main/java/android/icu/text/CollationElementIterator.java b/android_icu4j/src/main/java/android/icu/text/CollationElementIterator.java
index 0def17b..d7e5f4a 100644
--- a/android_icu4j/src/main/java/android/icu/text/CollationElementIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/CollationElementIterator.java
@@ -106,7 +106,6 @@
  * @see RuleBasedCollator
  * @see StringSearch
  * @author Syn Wee Quek
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationElementIterator
 {
diff --git a/android_icu4j/src/main/java/android/icu/text/CollationKey.java b/android_icu4j/src/main/java/android/icu/text/CollationKey.java
index ea28ce2..a0438c0 100644
--- a/android_icu4j/src/main/java/android/icu/text/CollationKey.java
+++ b/android_icu4j/src/main/java/android/icu/text/CollationKey.java
@@ -84,7 +84,6 @@
  * @see Collator
  * @see RuleBasedCollator
  * @author Syn Wee Quek
- * @hide All android.icu classes are currently hidden
  */
 public final class CollationKey implements Comparable<CollationKey>
 {
diff --git a/android_icu4j/src/main/java/android/icu/text/Collator.java b/android_icu4j/src/main/java/android/icu/text/Collator.java
index 0dbb928..589389d 100644
--- a/android_icu4j/src/main/java/android/icu/text/Collator.java
+++ b/android_icu4j/src/main/java/android/icu/text/Collator.java
@@ -129,7 +129,6 @@
 * @see RuleBasedCollator
 * @see CollationKey
 * @author Syn Wee Quek
- * @hide All android.icu classes are currently hidden
 */
 public abstract class Collator implements Comparator<Object>, Freezable<Collator>, Cloneable
 {
diff --git a/android_icu4j/src/main/java/android/icu/text/CompactDecimalFormat.java b/android_icu4j/src/main/java/android/icu/text/CompactDecimalFormat.java
index 5da1534..ed84c04 100644
--- a/android_icu4j/src/main/java/android/icu/text/CompactDecimalFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/CompactDecimalFormat.java
@@ -49,7 +49,6 @@
  * NumberFormat.
  *
  * @author markdavis
- * @hide All android.icu classes are currently hidden
  */
 public class CompactDecimalFormat extends DecimalFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/ComposedCharIter.java b/android_icu4j/src/main/java/android/icu/text/ComposedCharIter.java
index 0168e34..5980dfc 100644
--- a/android_icu4j/src/main/java/android/icu/text/ComposedCharIter.java
+++ b/android_icu4j/src/main/java/android/icu/text/ComposedCharIter.java
@@ -54,7 +54,6 @@
  * It will be updated as later versions of Unicode are released.
  * @deprecated ICU 2.2
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 ///CLOVER:OFF
diff --git a/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java b/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java
index ff7b14c..889d9b4 100644
--- a/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java
+++ b/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java
@@ -19,7 +19,6 @@
  * This class is not intended for public subclassing.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class CurrencyDisplayNames {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/CurrencyMetaInfo.java b/android_icu4j/src/main/java/android/icu/text/CurrencyMetaInfo.java
index 64082b2..d04c525 100644
--- a/android_icu4j/src/main/java/android/icu/text/CurrencyMetaInfo.java
+++ b/android_icu4j/src/main/java/android/icu/text/CurrencyMetaInfo.java
@@ -27,7 +27,6 @@
  * This class is not intended for public subclassing.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class CurrencyMetaInfo {
     private static final CurrencyMetaInfo impl;
diff --git a/android_icu4j/src/main/java/android/icu/text/CurrencyPluralInfo.java b/android_icu4j/src/main/java/android/icu/text/CurrencyPluralInfo.java
index a8fb007..e20648d 100644
--- a/android_icu4j/src/main/java/android/icu/text/CurrencyPluralInfo.java
+++ b/android_icu4j/src/main/java/android/icu/text/CurrencyPluralInfo.java
@@ -32,7 +32,6 @@
  * locale information,
  * plural rule of the locale,
  * currency plural pattern of the locale.
- * @hide All android.icu classes are currently hidden
  */
 
 public class CurrencyPluralInfo implements Cloneable, Serializable {
diff --git a/android_icu4j/src/main/java/android/icu/text/DateFormat.java b/android_icu4j/src/main/java/android/icu/text/DateFormat.java
index fd4ccbc..ecef9ed 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateFormat.java
@@ -138,7 +138,6 @@
  * @see android.icu.util.GregorianCalendar
  * @see android.icu.util.TimeZone
  * @author Mark Davis, Chen-Lieh Huang, Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public abstract class DateFormat extends UFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java b/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java
index bb0a596..2870e46 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java
@@ -74,7 +74,6 @@
  * @see          SimpleDateFormat
  * @see          android.icu.util.SimpleTimeZone
  * @author       Chen-Lieh Huang
- * @hide All android.icu classes are currently hidden
  */
 public class DateFormatSymbols implements Serializable, Cloneable {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/DateIntervalFormat.java b/android_icu4j/src/main/java/android/icu/text/DateIntervalFormat.java
index 5d07ae3..9005ec7 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateIntervalFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateIntervalFormat.java
@@ -248,7 +248,6 @@
  * 
  *
  * </pre>
- * @hide All android.icu classes are currently hidden
  */
 
 public class DateIntervalFormat extends UFormat {
diff --git a/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java b/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java
index 132621a..14519cc 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java
@@ -148,7 +148,6 @@
  * Data for a calendar is loaded out of resource bundles. 
  * Through ICU 4.4, date interval patterns are only supported in the Gregoria
  * calendar; non-Gregorian calendars are supported from ICU 4.4.1.  
- * @hide All android.icu classes are currently hidden
  */
 
 public class DateIntervalInfo implements Cloneable, Freezable<DateIntervalInfo>, Serializable {
diff --git a/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java b/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java
index d7c9c5a..bd17fa1 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java
@@ -46,7 +46,6 @@
  * The main method people will use is getBestPattern(String skeleton), since
  * normally this class is pre-built with data from a particular locale. However,
  * generators can be built directly from other data as well.
- * @hide All android.icu classes are currently hidden
  */
 public class DateTimePatternGenerator implements Freezable<DateTimePatternGenerator>, Cloneable {
     private static final boolean DEBUG = false;
diff --git a/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java b/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java
index 100c1b0..d466666 100644
--- a/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/DecimalFormat.java
@@ -605,7 +605,6 @@
  * @see          NumberFormat
  * @author       Mark Davis
  * @author       Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class DecimalFormat extends NumberFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java b/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java
index d3664b9..e17bc28 100644
--- a/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java
+++ b/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java
@@ -42,7 +42,6 @@
  * @see          DecimalFormat
  * @author       Mark Davis
  * @author       Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class DecimalFormatSymbols implements Cloneable, Serializable {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/DisplayContext.java b/android_icu4j/src/main/java/android/icu/text/DisplayContext.java
index f8d41ea..baa31ca 100644
--- a/android_icu4j/src/main/java/android/icu/text/DisplayContext.java
+++ b/android_icu4j/src/main/java/android/icu/text/DisplayContext.java
@@ -10,7 +10,6 @@
 /**
  * Display context settings.
  * Note, the specific numeric values are internal and may change.
- * @hide All android.icu classes are currently hidden
  */
 public enum DisplayContext {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/DurationFormat.java b/android_icu4j/src/main/java/android/icu/text/DurationFormat.java
index 9b1c958..8dd4bb5 100644
--- a/android_icu4j/src/main/java/android/icu/text/DurationFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/DurationFormat.java
@@ -25,7 +25,6 @@
  * @see RelativeDateTimeFormatter
  * @deprecated ICU 56 Use MeasureFormat or RelativeDateTimeFormatter instead.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public abstract class DurationFormat extends UFormat {
diff --git a/android_icu4j/src/main/java/android/icu/text/FilteredBreakIteratorBuilder.java b/android_icu4j/src/main/java/android/icu/text/FilteredBreakIteratorBuilder.java
index da041ee..96fe0e8 100644
--- a/android_icu4j/src/main/java/android/icu/text/FilteredBreakIteratorBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/text/FilteredBreakIteratorBuilder.java
@@ -36,7 +36,6 @@
  * @deprecated This API might change or be removed in a future release.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public abstract class FilteredBreakIteratorBuilder {
diff --git a/android_icu4j/src/main/java/android/icu/text/FilteredNormalizer2.java b/android_icu4j/src/main/java/android/icu/text/FilteredNormalizer2.java
index 10f2a50..20a9b67 100644
--- a/android_icu4j/src/main/java/android/icu/text/FilteredNormalizer2.java
+++ b/android_icu4j/src/main/java/android/icu/text/FilteredNormalizer2.java
@@ -21,7 +21,6 @@
  * An instance of this class is unmodifiable/immutable.
  * @author Markus W. Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class FilteredNormalizer2 extends Normalizer2 {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/IDNA.java b/android_icu4j/src/main/java/android/icu/text/IDNA.java
index a85d665..60c737f 100644
--- a/android_icu4j/src/main/java/android/icu/text/IDNA.java
+++ b/android_icu4j/src/main/java/android/icu/text/IDNA.java
@@ -50,7 +50,6 @@
  * ToASCII(ToASCII(ToASCII...(ToASCII(string))) == ToASCII(string).
  * 
  * @author Ram Viswanadha, Markus Scherer
- * @hide All android.icu classes are currently hidden
  */
 public abstract class IDNA {
     /** 
diff --git a/android_icu4j/src/main/java/android/icu/text/IdentifierInfo.java b/android_icu4j/src/main/java/android/icu/text/IdentifierInfo.java
index ee1dece..5985d4d 100644
--- a/android_icu4j/src/main/java/android/icu/text/IdentifierInfo.java
+++ b/android_icu4j/src/main/java/android/icu/text/IdentifierInfo.java
@@ -37,7 +37,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class IdentifierInfo {
diff --git a/android_icu4j/src/main/java/android/icu/text/ListFormatter.java b/android_icu4j/src/main/java/android/icu/text/ListFormatter.java
index 64e06e0..92588ef 100644
--- a/android_icu4j/src/main/java/android/icu/text/ListFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/text/ListFormatter.java
@@ -28,7 +28,6 @@
  *
  * @author Mark Davis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 final public class ListFormatter {
     private final SimplePatternFormatter two;
diff --git a/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java b/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java
index c0c58fa..b9020bf 100644
--- a/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java
+++ b/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java
@@ -25,7 +25,6 @@
  * Returns display names of ULocales and components of ULocales. For
  * more information on language, script, region, variant, key, and
  * values, see {@link android.icu.util.ULocale}.
- * @hide All android.icu classes are currently hidden
  */
 public abstract class LocaleDisplayNames {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java b/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java
index fa40c2e..a4547c1 100644
--- a/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java
@@ -108,7 +108,6 @@
  *
  * @see android.icu.text.UFormat
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class MeasureFormat extends UFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/MessageFormat.java b/android_icu4j/src/main/java/android/icu/text/MessageFormat.java
index df302ca..bb96ad6 100644
--- a/android_icu4j/src/main/java/android/icu/text/MessageFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/MessageFormat.java
@@ -330,7 +330,6 @@
  * @see          SelectFormat
  * @author       Mark Davis
  * @author       Markus Scherer
- * @hide All android.icu classes are currently hidden
  */
 public class MessageFormat extends UFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/MessagePattern.java b/android_icu4j/src/main/java/android/icu/text/MessagePattern.java
index 42e1a18..73af3fb 100644
--- a/android_icu4j/src/main/java/android/icu/text/MessagePattern.java
+++ b/android_icu4j/src/main/java/android/icu/text/MessagePattern.java
@@ -75,7 +75,6 @@
  * This class is not intended for public subclassing.
  *
  * @author Markus Scherer
- * @hide All android.icu classes are currently hidden
  */
 public final class MessagePattern implements Cloneable, Freezable<MessagePattern> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/MessagePatternUtil.java b/android_icu4j/src/main/java/android/icu/text/MessagePatternUtil.java
index 91aa8eb..50989b1 100644
--- a/android_icu4j/src/main/java/android/icu/text/MessagePatternUtil.java
+++ b/android_icu4j/src/main/java/android/icu/text/MessagePatternUtil.java
@@ -25,7 +25,6 @@
  * <p>This class and its nested classes are not intended for public subclassing.
  * @author Markus Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class MessagePatternUtil {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/Normalizer.java b/android_icu4j/src/main/java/android/icu/text/Normalizer.java
index 23465d0..d6d7ebf 100644
--- a/android_icu4j/src/main/java/android/icu/text/Normalizer.java
+++ b/android_icu4j/src/main/java/android/icu/text/Normalizer.java
@@ -126,7 +126,6 @@
  * between characters returned by next() and previous() and the indices
  * passed to and returned from setIndex() and getIndex().
  * It is for this reason that Normalizer does not implement the CharacterIterator interface.
- * @hide All android.icu classes are currently hidden
  */
 public final class Normalizer implements Cloneable {
     // The input text and our position in it
diff --git a/android_icu4j/src/main/java/android/icu/text/Normalizer2.java b/android_icu4j/src/main/java/android/icu/text/Normalizer2.java
index bfac6fc..48019fe 100644
--- a/android_icu4j/src/main/java/android/icu/text/Normalizer2.java
+++ b/android_icu4j/src/main/java/android/icu/text/Normalizer2.java
@@ -57,7 +57,6 @@
  * complete: There may be more boundaries that could be returned.
  * Different functions may return different boundaries.
  * @author Markus W. Scherer
- * @hide All android.icu classes are currently hidden
  */
 public abstract class Normalizer2 {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/NumberFormat.java b/android_icu4j/src/main/java/android/icu/text/NumberFormat.java
index dd8815f..4840aee 100644
--- a/android_icu4j/src/main/java/android/icu/text/NumberFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/NumberFormat.java
@@ -166,7 +166,6 @@
  * @author       Mark Davis
  * @author       Helena Shih
  * @author       Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public abstract class NumberFormat extends UFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java b/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java
index fc1de7c..728e561 100644
--- a/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java
+++ b/android_icu4j/src/main/java/android/icu/text/NumberingSystem.java
@@ -30,7 +30,6 @@
  * as Hebrew numbering or Chinese numbering.
  *
  * @author       John Emmons
- * @hide All android.icu classes are currently hidden
  */
 public class NumberingSystem {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/PluralFormat.java b/android_icu4j/src/main/java/android/icu/text/PluralFormat.java
index 6eb1b70..ee8f675 100644
--- a/android_icu4j/src/main/java/android/icu/text/PluralFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/PluralFormat.java
@@ -129,7 +129,6 @@
  * </p>
  *
  * @author tschumann (Tim Schumann)
- * @hide All android.icu classes are currently hidden
  */
 public class PluralFormat extends UFormat {
     private static final long serialVersionUID = 1L;
diff --git a/android_icu4j/src/main/java/android/icu/text/PluralRanges.java b/android_icu4j/src/main/java/android/icu/text/PluralRanges.java
index 2b3b5dd..c87984a 100644
--- a/android_icu4j/src/main/java/android/icu/text/PluralRanges.java
+++ b/android_icu4j/src/main/java/android/icu/text/PluralRanges.java
@@ -22,7 +22,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public final class PluralRanges implements Freezable<PluralRanges>, Comparable<PluralRanges> {
diff --git a/android_icu4j/src/main/java/android/icu/text/PluralRules.java b/android_icu4j/src/main/java/android/icu/text/PluralRules.java
index 9eea155..9ae6626 100644
--- a/android_icu4j/src/main/java/android/icu/text/PluralRules.java
+++ b/android_icu4j/src/main/java/android/icu/text/PluralRules.java
@@ -164,7 +164,6 @@
  * includes all values. Using 'within' with a range_list consisting entirely of values is the same as using 'in' (it's
  * not an error).
  * </p>
- * @hide All android.icu classes are currently hidden
  */
 public class PluralRules implements Serializable {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/PluralSamples.java b/android_icu4j/src/main/java/android/icu/text/PluralSamples.java
index e6f10be..6a85296 100644
--- a/android_icu4j/src/main/java/android/icu/text/PluralSamples.java
+++ b/android_icu4j/src/main/java/android/icu/text/PluralSamples.java
@@ -32,7 +32,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class PluralSamples {
diff --git a/android_icu4j/src/main/java/android/icu/text/RawCollationKey.java b/android_icu4j/src/main/java/android/icu/text/RawCollationKey.java
index c02ddd6..0e13e14 100644
--- a/android_icu4j/src/main/java/android/icu/text/RawCollationKey.java
+++ b/android_icu4j/src/main/java/android/icu/text/RawCollationKey.java
@@ -38,7 +38,6 @@
  * See class documentation for Collator.</p>
  * @see RuleBasedCollator
  * @see CollationKey
- * @hide All android.icu classes are currently hidden
  */
 public final class RawCollationKey extends ByteArrayWrapper
 {
diff --git a/android_icu4j/src/main/java/android/icu/text/RbnfLenientScanner.java b/android_icu4j/src/main/java/android/icu/text/RbnfLenientScanner.java
index 2df7cf4..af662fa 100644
--- a/android_icu4j/src/main/java/android/icu/text/RbnfLenientScanner.java
+++ b/android_icu4j/src/main/java/android/icu/text/RbnfLenientScanner.java
@@ -13,7 +13,6 @@
  *
  * @deprecated ICU 54
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public interface RbnfLenientScanner {
diff --git a/android_icu4j/src/main/java/android/icu/text/RbnfLenientScannerProvider.java b/android_icu4j/src/main/java/android/icu/text/RbnfLenientScannerProvider.java
index 7bfa4e3..6f8ff29 100644
--- a/android_icu4j/src/main/java/android/icu/text/RbnfLenientScannerProvider.java
+++ b/android_icu4j/src/main/java/android/icu/text/RbnfLenientScannerProvider.java
@@ -15,7 +15,6 @@
  *
  * @deprecated ICU 54
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public interface RbnfLenientScannerProvider {
diff --git a/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java b/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java
index a6c624b..1f3cf28 100644
--- a/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java
@@ -61,7 +61,6 @@
  * <p>
  * In the future, we may add more forms, such as abbreviated/short forms
  * (3 secs ago), and relative day periods ("yesterday afternoon"), etc.
- * @hide All android.icu classes are currently hidden
  */
 public final class RelativeDateTimeFormatter {
     
diff --git a/android_icu4j/src/main/java/android/icu/text/Replaceable.java b/android_icu4j/src/main/java/android/icu/text/Replaceable.java
index eb8171b..e3289df 100644
--- a/android_icu4j/src/main/java/android/icu/text/Replaceable.java
+++ b/android_icu4j/src/main/java/android/icu/text/Replaceable.java
@@ -51,7 +51,6 @@
  * <p>Copyright &copy; IBM Corporation 1999.  All rights reserved.
  *
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public interface Replaceable {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/ReplaceableString.java b/android_icu4j/src/main/java/android/icu/text/ReplaceableString.java
index 8fd6d1a..43c8798 100644
--- a/android_icu4j/src/main/java/android/icu/text/ReplaceableString.java
+++ b/android_icu4j/src/main/java/android/icu/text/ReplaceableString.java
@@ -20,7 +20,6 @@
  * @see Replaceable
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ReplaceableString implements Replaceable {
     private StringBuffer buf;
diff --git a/android_icu4j/src/main/java/android/icu/text/RuleBasedBreakIterator.java b/android_icu4j/src/main/java/android/icu/text/RuleBasedBreakIterator.java
index 1b4b3bd..6b8932d 100644
--- a/android_icu4j/src/main/java/android/icu/text/RuleBasedBreakIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/RuleBasedBreakIterator.java
@@ -35,7 +35,6 @@
  * This is a port of the C++ class RuleBasedBreakIterator from ICU4C.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class RuleBasedBreakIterator extends BreakIterator {
     //=======================================================================
diff --git a/android_icu4j/src/main/java/android/icu/text/RuleBasedCollator.java b/android_icu4j/src/main/java/android/icu/text/RuleBasedCollator.java
index e3ff6de..6ba7546 100644
--- a/android_icu4j/src/main/java/android/icu/text/RuleBasedCollator.java
+++ b/android_icu4j/src/main/java/android/icu/text/RuleBasedCollator.java
@@ -193,7 +193,6 @@
  * </p>
  * 
  * @author Syn Wee Quek
- * @hide All android.icu classes are currently hidden
  */
 public final class RuleBasedCollator extends Collator {
     // public constructors ---------------------------------------------------
diff --git a/android_icu4j/src/main/java/android/icu/text/RuleBasedNumberFormat.java b/android_icu4j/src/main/java/android/icu/text/RuleBasedNumberFormat.java
index f1e631b..1c074c2 100644
--- a/android_icu4j/src/main/java/android/icu/text/RuleBasedNumberFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/RuleBasedNumberFormat.java
@@ -534,7 +534,6 @@
  * @see PluralFormat
  * @see PluralRules
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class RuleBasedNumberFormat extends NumberFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/RuleBasedTransliterator.java b/android_icu4j/src/main/java/android/icu/text/RuleBasedTransliterator.java
index fa46a04..65ba6d9 100644
--- a/android_icu4j/src/main/java/android/icu/text/RuleBasedTransliterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/RuleBasedTransliterator.java
@@ -274,7 +274,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class RuleBasedTransliterator extends Transliterator {
diff --git a/android_icu4j/src/main/java/android/icu/text/ScientificNumberFormatter.java b/android_icu4j/src/main/java/android/icu/text/ScientificNumberFormatter.java
index 8fc3284..57d37c5 100644
--- a/android_icu4j/src/main/java/android/icu/text/ScientificNumberFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/text/ScientificNumberFormatter.java
@@ -32,7 +32,6 @@
  *
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  *
  */
 public final class ScientificNumberFormatter {
diff --git a/android_icu4j/src/main/java/android/icu/text/SearchIterator.java b/android_icu4j/src/main/java/android/icu/text/SearchIterator.java
index 14a86dc..72e5cb2 100644
--- a/android_icu4j/src/main/java/android/icu/text/SearchIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/SearchIterator.java
@@ -47,7 +47,6 @@
  * @author Laura Werner, synwee
  * @see BreakIterator
  * @see RuleBasedCollator
- * @hide All android.icu classes are currently hidden
  */
 public abstract class SearchIterator 
 {
diff --git a/android_icu4j/src/main/java/android/icu/text/SelectFormat.java b/android_icu4j/src/main/java/android/icu/text/SelectFormat.java
index 44bcba0..266ff5f 100644
--- a/android_icu4j/src/main/java/android/icu/text/SelectFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/SelectFormat.java
@@ -145,7 +145,6 @@
  * Produces the output:<br/>
  * <code>Kirti est all&#u00E9;e &#u00E0; Paris.</code>
  * </p>
- * @hide All android.icu classes are currently hidden
  */
 
 public class SelectFormat extends Format{
diff --git a/android_icu4j/src/main/java/android/icu/text/SimpleDateFormat.java b/android_icu4j/src/main/java/android/icu/text/SimpleDateFormat.java
index b5b3bbc..4fe2431 100644
--- a/android_icu4j/src/main/java/android/icu/text/SimpleDateFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/SimpleDateFormat.java
@@ -711,7 +711,6 @@
  * @see          DecimalFormat
  * @see          TimeZoneFormat
  * @author       Mark Davis, Chen-Lieh Huang, Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class SimpleDateFormat extends DateFormat {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java b/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java
index d34ffa3..e9bf482 100644
--- a/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java
+++ b/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java
@@ -144,7 +144,6 @@
  *     are normally used with text from many different scripts. </blockquote>
  *
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SpoofChecker {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/StringCharacterIterator.java b/android_icu4j/src/main/java/android/icu/text/StringCharacterIterator.java
index 4833b61..7388749 100644
--- a/android_icu4j/src/main/java/android/icu/text/StringCharacterIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/StringCharacterIterator.java
@@ -27,7 +27,6 @@
  * @see CharacterIterator
  * @deprecated ICU 2.4. Use java.text.StringCharacterIterator instead.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 ///CLOVER:OFF
diff --git a/android_icu4j/src/main/java/android/icu/text/StringPrep.java b/android_icu4j/src/main/java/android/icu/text/StringPrep.java
index e7681e4..40c391c 100644
--- a/android_icu4j/src/main/java/android/icu/text/StringPrep.java
+++ b/android_icu4j/src/main/java/android/icu/text/StringPrep.java
@@ -54,7 +54,6 @@
  * </ol>
  * @author Ram Viswanadha
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class StringPrep {
     /** 
diff --git a/android_icu4j/src/main/java/android/icu/text/StringPrepParseException.java b/android_icu4j/src/main/java/android/icu/text/StringPrepParseException.java
index 1466ad0..70c323f 100644
--- a/android_icu4j/src/main/java/android/icu/text/StringPrepParseException.java
+++ b/android_icu4j/src/main/java/android/icu/text/StringPrepParseException.java
@@ -14,7 +14,6 @@
  * input to StringPrep or IDNA. 
  *
  * @author Ram Viswanadha
- * @hide All android.icu classes are currently hidden
  */
 public class StringPrepParseException extends ParseException {
     // Generated by serialver from JDK 1.4.1_01
diff --git a/android_icu4j/src/main/java/android/icu/text/StringSearch.java b/android_icu4j/src/main/java/android/icu/text/StringSearch.java
index 3bc0d13..bae10eb 100644
--- a/android_icu4j/src/main/java/android/icu/text/StringSearch.java
+++ b/android_icu4j/src/main/java/android/icu/text/StringSearch.java
@@ -124,7 +124,6 @@
  * @see SearchIterator
  * @see RuleBasedCollator
  * @author Laura Werner, synwee
- * @hide All android.icu classes are currently hidden
  */
 // internal notes: all methods do not guarantee the correct status of the 
 // characteriterator. the caller has to maintain the original index position
diff --git a/android_icu4j/src/main/java/android/icu/text/StringTransform.java b/android_icu4j/src/main/java/android/icu/text/StringTransform.java
index 9c8c815..da35584 100644
--- a/android_icu4j/src/main/java/android/icu/text/StringTransform.java
+++ b/android_icu4j/src/main/java/android/icu/text/StringTransform.java
@@ -12,7 +12,6 @@
  *
  * @author markdavis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  *
  */
 public interface StringTransform extends Transform<String,String> {
diff --git a/android_icu4j/src/main/java/android/icu/text/SymbolTable.java b/android_icu4j/src/main/java/android/icu/text/SymbolTable.java
index 8e97898..7b4afd4 100644
--- a/android_icu4j/src/main/java/android/icu/text/SymbolTable.java
+++ b/android_icu4j/src/main/java/android/icu/text/SymbolTable.java
@@ -34,7 +34,6 @@
  * When a parser encounters this character, it calls parseReference()
  * with the position immediately following the SYMBOL_REF.  The symbol
  * table parses the name, if there is one, and returns it.
- * @hide All android.icu classes are currently hidden
  */
 public interface SymbolTable {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/TimeUnitFormat.java b/android_icu4j/src/main/java/android/icu/text/TimeUnitFormat.java
index 406cf98..a6792e2 100644
--- a/android_icu4j/src/main/java/android/icu/text/TimeUnitFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/TimeUnitFormat.java
@@ -61,7 +61,6 @@
  * @author markdavis
  * @deprecated ICU 53 use {@link MeasureFormat} instead.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class TimeUnitFormat extends MeasureFormat {
diff --git a/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java b/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java
index f748c8e..4cadd7a 100644
--- a/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java
@@ -61,7 +61,6 @@
  * 
  * @see SimpleDateFormat
  * @see TimeZoneNames
- * @hide All android.icu classes are currently hidden
  */
 public class TimeZoneFormat extends UFormat implements Freezable<TimeZoneFormat>, Serializable {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java b/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java
index 42ead34..6bd1cb6 100644
--- a/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java
+++ b/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java
@@ -72,7 +72,6 @@
  * locales. Therefore, the behavior of {@link #getAvailableMetaZoneIDs()}, {@link #getAvailableMetaZoneIDs(String)},
  * {@link #getMetaZoneID(String, long)}, and {@link #getReferenceZoneID(String, String)} won't be changed no matter
  * what locale is used for getting an instance of <code>TimeZoneNames</code>.
- * @hide All android.icu classes are currently hidden
  */
 public abstract class TimeZoneNames implements Serializable {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/Transform.java b/android_icu4j/src/main/java/android/icu/text/Transform.java
index 2846821..9aa6367 100644
--- a/android_icu4j/src/main/java/android/icu/text/Transform.java
+++ b/android_icu4j/src/main/java/android/icu/text/Transform.java
@@ -13,7 +13,6 @@
  *
  * @author markdavis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 
  */
 
diff --git a/android_icu4j/src/main/java/android/icu/text/Transliterator.java b/android_icu4j/src/main/java/android/icu/text/Transliterator.java
index e5f46d8..10ec49c 100644
--- a/android_icu4j/src/main/java/android/icu/text/Transliterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/Transliterator.java
@@ -224,7 +224,6 @@
  * 
  * @author Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class Transliterator implements StringTransform  {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/text/UCharacterIterator.java b/android_icu4j/src/main/java/android/icu/text/UCharacterIterator.java
index 4153c78..ca8d1b4 100644
--- a/android_icu4j/src/main/java/android/icu/text/UCharacterIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/UCharacterIterator.java
@@ -28,7 +28,6 @@
  * iteration, <code>java.text.CharacterIterator</code> can only iterate over 
  * code units and is limited to BMP (0 - 0xFFFF)
  * @author Ram
- * @hide All android.icu classes are currently hidden
  */
 public abstract class UCharacterIterator 
                       implements Cloneable,UForwardCharacterIterator {
diff --git a/android_icu4j/src/main/java/android/icu/text/UFieldPosition.java b/android_icu4j/src/main/java/android/icu/text/UFieldPosition.java
index 04206a1..c6272ac 100644
--- a/android_icu4j/src/main/java/android/icu/text/UFieldPosition.java
+++ b/android_icu4j/src/main/java/android/icu/text/UFieldPosition.java
@@ -15,7 +15,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class UFieldPosition extends FieldPosition {
diff --git a/android_icu4j/src/main/java/android/icu/text/UFormat.java b/android_icu4j/src/main/java/android/icu/text/UFormat.java
index a8d1cff..969ca08 100644
--- a/android_icu4j/src/main/java/android/icu/text/UFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/UFormat.java
@@ -19,7 +19,6 @@
  * @see android.icu.util.ULocale
  * @author weiv
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public abstract class UFormat extends Format {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/text/UForwardCharacterIterator.java b/android_icu4j/src/main/java/android/icu/text/UForwardCharacterIterator.java
index 26fc126..1ca0c14 100644
--- a/android_icu4j/src/main/java/android/icu/text/UForwardCharacterIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/UForwardCharacterIterator.java
@@ -55,7 +55,6 @@
  * </code>
  * </p>
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  *
  */
 
diff --git a/android_icu4j/src/main/java/android/icu/text/UTF16.java b/android_icu4j/src/main/java/android/icu/text/UTF16.java
index f920a65..40d1dc4 100644
--- a/android_icu4j/src/main/java/android/icu/text/UTF16.java
+++ b/android_icu4j/src/main/java/android/icu/text/UTF16.java
@@ -77,7 +77,6 @@
  * 
  * @author Mark Davis, with help from Markus Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public final class UTF16 {
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeCompressor.java b/android_icu4j/src/main/java/android/icu/text/UnicodeCompressor.java
index 2dcea68..49c3ff0 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeCompressor.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeCompressor.java
@@ -73,7 +73,6 @@
 *
 * @author Stephen F. Booth
 * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 */
 
 /*
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeDecompressor.java b/android_icu4j/src/main/java/android/icu/text/UnicodeDecompressor.java
index 6f62624..5f3c692 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeDecompressor.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeDecompressor.java
@@ -69,7 +69,6 @@
 *
 * @author Stephen F. Booth
 * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
 */
 public final class UnicodeDecompressor implements SCSU
 {
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeFilter.java b/android_icu4j/src/main/java/android/icu/text/UnicodeFilter.java
index a2d55f8..a4662bb 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeFilter.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeFilter.java
@@ -14,7 +14,6 @@
  * <a href="Transliterator.html" title="class in android.icu.text"><code>Transliterator</code></a>
  * to only process selected characters through a
  * transformation.
- * @hide All android.icu classes are currently hidden
  */
 public abstract class UnicodeFilter implements UnicodeMatcher {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeMatcher.java b/android_icu4j/src/main/java/android/icu/text/UnicodeMatcher.java
index b84a6ec..b054f35 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeMatcher.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeMatcher.java
@@ -10,7 +10,6 @@
 /**
  * <code>UnicodeMatcher</code> defines a protocol for objects that can
  * match a range of characters in a Replaceable string.
- * @hide All android.icu classes are currently hidden
  */
 public interface UnicodeMatcher {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java b/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java
index 4aebcc4..f5821dc 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeSet.java
@@ -284,7 +284,6 @@
  * @author Alan Liu
  * @see UnicodeSetIterator
  * @see UnicodeSetSpanner
- * @hide All android.icu classes are currently hidden
  */
 public class UnicodeSet extends UnicodeFilter implements Iterable<String>, Comparable<UnicodeSet>, Freezable<UnicodeSet> {
 
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeSetIterator.java b/android_icu4j/src/main/java/android/icu/text/UnicodeSetIterator.java
index a2b8411..d5e40c0 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeSetIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeSetIterator.java
@@ -36,7 +36,6 @@
  * <p><b>Warning: </b>For speed, UnicodeSet iteration does not check for concurrent modification. 
  * Do not alter the UnicodeSet while iterating.
  * @author M. Davis
- * @hide All android.icu classes are currently hidden
  */
 public class UnicodeSetIterator {
     
diff --git a/android_icu4j/src/main/java/android/icu/text/UnicodeSetSpanner.java b/android_icu4j/src/main/java/android/icu/text/UnicodeSetSpanner.java
index 1d81f0a..9e55b1d 100644
--- a/android_icu4j/src/main/java/android/icu/text/UnicodeSetSpanner.java
+++ b/android_icu4j/src/main/java/android/icu/text/UnicodeSetSpanner.java
@@ -38,7 +38,6 @@
  * <tr><th>NOT_CONTAINED</th><td>xxxabcyyy|</td></tr>
  * </table>
  * </p>The entire string is traversed.
- * @hide All android.icu classes are currently hidden
  */
 public class UnicodeSetSpanner {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/AnnualTimeZoneRule.java b/android_icu4j/src/main/java/android/icu/util/AnnualTimeZoneRule.java
index 947b0de..0c5d727 100644
--- a/android_icu4j/src/main/java/android/icu/util/AnnualTimeZoneRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/AnnualTimeZoneRule.java
@@ -17,7 +17,6 @@
  * all Gregorian calendar years.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class AnnualTimeZoneRule extends TimeZoneRule {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/BasicTimeZone.java b/android_icu4j/src/main/java/android/icu/util/BasicTimeZone.java
index a1ecc8a..ae9fdfe 100644
--- a/android_icu4j/src/main/java/android/icu/util/BasicTimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/util/BasicTimeZone.java
@@ -25,7 +25,6 @@
  * @see android.icu.util.TimeZoneTransition
  *
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class BasicTimeZone extends TimeZone {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/BuddhistCalendar.java b/android_icu4j/src/main/java/android/icu/util/BuddhistCalendar.java
index 486f020..5ed78a8 100644
--- a/android_icu4j/src/main/java/android/icu/util/BuddhistCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/BuddhistCalendar.java
@@ -37,7 +37,6 @@
  *
  * @author Laura Werner
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class BuddhistCalendar extends GregorianCalendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/ByteArrayWrapper.java b/android_icu4j/src/main/java/android/icu/util/ByteArrayWrapper.java
index 6436da8..4ddf87b 100644
--- a/android_icu4j/src/main/java/android/icu/util/ByteArrayWrapper.java
+++ b/android_icu4j/src/main/java/android/icu/util/ByteArrayWrapper.java
@@ -22,7 +22,6 @@
  * size when necessary.
  * </p> 
  * @author syn wee
- * @hide All android.icu classes are currently hidden
  */
 public class ByteArrayWrapper implements Comparable<ByteArrayWrapper>
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/BytesTrie.java b/android_icu4j/src/main/java/android/icu/util/BytesTrie.java
index b3a7473..0e78b87 100644
--- a/android_icu4j/src/main/java/android/icu/util/BytesTrie.java
+++ b/android_icu4j/src/main/java/android/icu/util/BytesTrie.java
@@ -24,7 +24,6 @@
  *
  * @author Markus W. Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class BytesTrie implements Cloneable, Iterable<BytesTrie.Entry> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/BytesTrieBuilder.java b/android_icu4j/src/main/java/android/icu/util/BytesTrieBuilder.java
index be48438..99bd2f8 100644
--- a/android_icu4j/src/main/java/android/icu/util/BytesTrieBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/util/BytesTrieBuilder.java
@@ -20,7 +20,6 @@
  *
  * @author Markus W. Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class BytesTrieBuilder extends StringTrieBuilder {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/Calendar.java b/android_icu4j/src/main/java/android/icu/util/Calendar.java
index 77049e5..3a4fee8 100644
--- a/android_icu4j/src/main/java/android/icu/util/Calendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/Calendar.java
@@ -636,7 +636,6 @@
  * @see          TimeZone
  * @see          DateFormat
  * @author Mark Davis, David Goldsmith, Chen-Lieh Huang, Alan Liu, Laura Werner
- * @hide All android.icu classes are currently hidden
  */
 public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/CaseInsensitiveString.java b/android_icu4j/src/main/java/android/icu/util/CaseInsensitiveString.java
index d50e1ae..b82d48f 100644
--- a/android_icu4j/src/main/java/android/icu/util/CaseInsensitiveString.java
+++ b/android_icu4j/src/main/java/android/icu/util/CaseInsensitiveString.java
@@ -14,7 +14,6 @@
  * collections.  It retains case information, but its equals() and
  * hashCode() methods ignore case.
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class CaseInsensitiveString {
     
diff --git a/android_icu4j/src/main/java/android/icu/util/CharsTrie.java b/android_icu4j/src/main/java/android/icu/util/CharsTrie.java
index b095356..6e1d9a3 100644
--- a/android_icu4j/src/main/java/android/icu/util/CharsTrie.java
+++ b/android_icu4j/src/main/java/android/icu/util/CharsTrie.java
@@ -27,7 +27,6 @@
  *
  * @author Markus W. Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CharsTrie implements Cloneable, Iterable<CharsTrie.Entry> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/CharsTrieBuilder.java b/android_icu4j/src/main/java/android/icu/util/CharsTrieBuilder.java
index 62ab537..eb0bc21 100644
--- a/android_icu4j/src/main/java/android/icu/util/CharsTrieBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/util/CharsTrieBuilder.java
@@ -20,7 +20,6 @@
  *
  * @author Markus W. Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class CharsTrieBuilder extends StringTrieBuilder {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/ChineseCalendar.java b/android_icu4j/src/main/java/android/icu/util/ChineseCalendar.java
index c27aab6..cc307d8 100644
--- a/android_icu4j/src/main/java/android/icu/util/ChineseCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/ChineseCalendar.java
@@ -79,7 +79,6 @@
  *
  * @see android.icu.util.Calendar
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class ChineseCalendar extends Calendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/CompactByteArray.java b/android_icu4j/src/main/java/android/icu/util/CompactByteArray.java
index 6ab6cd7..50fce9d 100644
--- a/android_icu4j/src/main/java/android/icu/util/CompactByteArray.java
+++ b/android_icu4j/src/main/java/android/icu/util/CompactByteArray.java
@@ -30,7 +30,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public final class CompactByteArray implements Cloneable {
diff --git a/android_icu4j/src/main/java/android/icu/util/CompactCharArray.java b/android_icu4j/src/main/java/android/icu/util/CompactCharArray.java
index e542bde..a20d82a 100644
--- a/android_icu4j/src/main/java/android/icu/util/CompactCharArray.java
+++ b/android_icu4j/src/main/java/android/icu/util/CompactCharArray.java
@@ -31,7 +31,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public final class CompactCharArray implements Cloneable {
diff --git a/android_icu4j/src/main/java/android/icu/util/CopticCalendar.java b/android_icu4j/src/main/java/android/icu/util/CopticCalendar.java
index e8bad21..294b669 100644
--- a/android_icu4j/src/main/java/android/icu/util/CopticCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/CopticCalendar.java
@@ -19,7 +19,6 @@
  * with the tag <code>"@calendar=coptic"</code>.</p>
  *
  * @see android.icu.util.Calendar
- * @hide All android.icu classes are currently hidden
  */
 public final class CopticCalendar extends CECalendar 
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/Currency.java b/android_icu4j/src/main/java/android/icu/util/Currency.java
index e9f2610..25a718e 100644
--- a/android_icu4j/src/main/java/android/icu/util/Currency.java
+++ b/android_icu4j/src/main/java/android/icu/util/Currency.java
@@ -51,7 +51,6 @@
  * <tt>java.util.Currency</tt> but it has a completely independent
  * implementation, and adds features not present in the JDK.
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class Currency extends MeasureUnit {
     private static final long serialVersionUID = -5839973855554750484L;
diff --git a/android_icu4j/src/main/java/android/icu/util/CurrencyAmount.java b/android_icu4j/src/main/java/android/icu/util/CurrencyAmount.java
index a44573c..a9097a0 100644
--- a/android_icu4j/src/main/java/android/icu/util/CurrencyAmount.java
+++ b/android_icu4j/src/main/java/android/icu/util/CurrencyAmount.java
@@ -19,7 +19,6 @@
  * @see java.lang.Number
  * @see Currency
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class CurrencyAmount extends Measure {
     
diff --git a/android_icu4j/src/main/java/android/icu/util/DangiCalendar.java b/android_icu4j/src/main/java/android/icu/util/DangiCalendar.java
index 17d730d..c2db254 100644
--- a/android_icu4j/src/main/java/android/icu/util/DangiCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/DangiCalendar.java
@@ -18,7 +18,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class DangiCalendar extends ChineseCalendar {
diff --git a/android_icu4j/src/main/java/android/icu/util/DateInterval.java b/android_icu4j/src/main/java/android/icu/util/DateInterval.java
index d63e0f8..562d962 100644
--- a/android_icu4j/src/main/java/android/icu/util/DateInterval.java
+++ b/android_icu4j/src/main/java/android/icu/util/DateInterval.java
@@ -14,7 +14,6 @@
 /**
  * This class represents date interval.
  * It is a pair of long representing from date 1 to date 2.
- * @hide All android.icu classes are currently hidden
  */
 public final class DateInterval implements Serializable {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/DateRule.java b/android_icu4j/src/main/java/android/icu/util/DateRule.java
index 125107b..bcddb82 100644
--- a/android_icu4j/src/main/java/android/icu/util/DateRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/DateRule.java
@@ -22,7 +22,6 @@
  * @see SimpleDateRule
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public interface DateRule
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/DateTimeRule.java b/android_icu4j/src/main/java/android/icu/util/DateTimeRule.java
index 6a1cd83..351e16d 100644
--- a/android_icu4j/src/main/java/android/icu/util/DateTimeRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/DateTimeRule.java
@@ -15,7 +15,6 @@
  * time in the day.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class DateTimeRule implements Serializable {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/EasterHoliday.java b/android_icu4j/src/main/java/android/icu/util/EasterHoliday.java
index 8d5377a..b127e5b 100644
--- a/android_icu4j/src/main/java/android/icu/util/EasterHoliday.java
+++ b/android_icu4j/src/main/java/android/icu/util/EasterHoliday.java
@@ -19,7 +19,6 @@
  * Western and Orthodox methods for calculating Easter.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class EasterHoliday extends Holiday
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/EthiopicCalendar.java b/android_icu4j/src/main/java/android/icu/util/EthiopicCalendar.java
index 3707b1e..29f1996 100644
--- a/android_icu4j/src/main/java/android/icu/util/EthiopicCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/EthiopicCalendar.java
@@ -23,7 +23,6 @@
  *
  * @see android.icu.util.Calendar
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class EthiopicCalendar extends CECalendar 
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/Freezable.java b/android_icu4j/src/main/java/android/icu/util/Freezable.java
index bd23762..39c2aa4 100644
--- a/android_icu4j/src/main/java/android/icu/util/Freezable.java
+++ b/android_icu4j/src/main/java/android/icu/util/Freezable.java
@@ -298,7 +298,6 @@
  * </pre>
  * 
  * </blockquote>
- * @hide All android.icu classes are currently hidden
  */
 public interface Freezable<T> extends Cloneable {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/GenderInfo.java b/android_icu4j/src/main/java/android/icu/util/GenderInfo.java
index b8ed57f..9a5002b 100644
--- a/android_icu4j/src/main/java/android/icu/util/GenderInfo.java
+++ b/android_icu4j/src/main/java/android/icu/util/GenderInfo.java
@@ -24,7 +24,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class GenderInfo {
diff --git a/android_icu4j/src/main/java/android/icu/util/GlobalizationPreferences.java b/android_icu4j/src/main/java/android/icu/util/GlobalizationPreferences.java
index e55c7c5..04bbf56 100644
--- a/android_icu4j/src/main/java/android/icu/util/GlobalizationPreferences.java
+++ b/android_icu4j/src/main/java/android/icu/util/GlobalizationPreferences.java
@@ -75,7 +75,6 @@
  *
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 
 //TODO:
diff --git a/android_icu4j/src/main/java/android/icu/util/GregorianCalendar.java b/android_icu4j/src/main/java/android/icu/util/GregorianCalendar.java
index 1a17d22..e5542ca 100644
--- a/android_icu4j/src/main/java/android/icu/util/GregorianCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/GregorianCalendar.java
@@ -166,7 +166,6 @@
  * @see          Calendar
  * @see          TimeZone
  * @author David Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class GregorianCalendar extends Calendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/HebrewCalendar.java b/android_icu4j/src/main/java/android/icu/util/HebrewCalendar.java
index 7845334..904f84f 100644
--- a/android_icu4j/src/main/java/android/icu/util/HebrewCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/HebrewCalendar.java
@@ -70,7 +70,6 @@
  *
  * @author Laura Werner
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class HebrewCalendar extends Calendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/HebrewHoliday.java b/android_icu4j/src/main/java/android/icu/util/HebrewHoliday.java
index 37e77f5..a511f9b 100644
--- a/android_icu4j/src/main/java/android/icu/util/HebrewHoliday.java
+++ b/android_icu4j/src/main/java/android/icu/util/HebrewHoliday.java
@@ -14,7 +14,6 @@
  * 
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class HebrewHoliday extends Holiday
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/Holiday.java b/android_icu4j/src/main/java/android/icu/util/Holiday.java
index b4e9dd1..787ed1c 100644
--- a/android_icu4j/src/main/java/android/icu/util/Holiday.java
+++ b/android_icu4j/src/main/java/android/icu/util/Holiday.java
@@ -22,7 +22,6 @@
  * An abstract class representing a holiday.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class Holiday implements DateRule
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/ICUCloneNotSupportedException.java b/android_icu4j/src/main/java/android/icu/util/ICUCloneNotSupportedException.java
index c3c13dc..0191784 100644
--- a/android_icu4j/src/main/java/android/icu/util/ICUCloneNotSupportedException.java
+++ b/android_icu4j/src/main/java/android/icu/util/ICUCloneNotSupportedException.java
@@ -13,7 +13,6 @@
  * into this unchecked version.
  *
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUCloneNotSupportedException extends ICUException {
     private static final long serialVersionUID = -4824446458488194964L;
diff --git a/android_icu4j/src/main/java/android/icu/util/ICUException.java b/android_icu4j/src/main/java/android/icu/util/ICUException.java
index 51f845e..524d9bb 100644
--- a/android_icu4j/src/main/java/android/icu/util/ICUException.java
+++ b/android_icu4j/src/main/java/android/icu/util/ICUException.java
@@ -11,7 +11,6 @@
  * Base class for unchecked, ICU-specific exceptions.
  *
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class ICUException extends RuntimeException {
     private static final long serialVersionUID = -3067399656455755650L;
diff --git a/android_icu4j/src/main/java/android/icu/util/ICUUncheckedIOException.java b/android_icu4j/src/main/java/android/icu/util/ICUUncheckedIOException.java
index 7cee857..05cfbca 100644
--- a/android_icu4j/src/main/java/android/icu/util/ICUUncheckedIOException.java
+++ b/android_icu4j/src/main/java/android/icu/util/ICUUncheckedIOException.java
@@ -15,7 +15,6 @@
  * <p>This currently extends {@link RuntimeException},
  * but when ICU can rely on Java 8 this class should be changed to extend
  * java.io.UncheckedIOException instead.
- * @hide All android.icu classes are currently hidden
  */
 public class ICUUncheckedIOException extends RuntimeException {
     private static final long serialVersionUID = 1210263498513384449L;
diff --git a/android_icu4j/src/main/java/android/icu/util/IllformedLocaleException.java b/android_icu4j/src/main/java/android/icu/util/IllformedLocaleException.java
index 4703ae2..cf30a26 100644
--- a/android_icu4j/src/main/java/android/icu/util/IllformedLocaleException.java
+++ b/android_icu4j/src/main/java/android/icu/util/IllformedLocaleException.java
@@ -13,7 +13,6 @@
  * 
  * @see ULocale
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class IllformedLocaleException extends RuntimeException {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/IndianCalendar.java b/android_icu4j/src/main/java/android/icu/util/IndianCalendar.java
index e983b5c..37a683c 100644
--- a/android_icu4j/src/main/java/android/icu/util/IndianCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/IndianCalendar.java
@@ -62,7 +62,6 @@
  * 
  * @see android.icu.util.Calendar
  * @see android.icu.util.GregorianCalendar
- * @hide All android.icu classes are currently hidden
  */
 public class IndianCalendar extends Calendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/InitialTimeZoneRule.java b/android_icu4j/src/main/java/android/icu/util/InitialTimeZoneRule.java
index 6b83adf..2ec1647 100644
--- a/android_icu4j/src/main/java/android/icu/util/InitialTimeZoneRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/InitialTimeZoneRule.java
@@ -15,7 +15,6 @@
  * has no actual start times.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class InitialTimeZoneRule extends TimeZoneRule {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java b/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java
index dc2cf8d..df8ee6e 100644
--- a/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/IslamicCalendar.java
@@ -79,7 +79,6 @@
  *
  * @author Laura Werner
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class IslamicCalendar extends Calendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/JapaneseCalendar.java b/android_icu4j/src/main/java/android/icu/util/JapaneseCalendar.java
index c624a4a..a399363 100644
--- a/android_icu4j/src/main/java/android/icu/util/JapaneseCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/JapaneseCalendar.java
@@ -44,7 +44,6 @@
  *
  * @author Laura Werner
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class JapaneseCalendar extends GregorianCalendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/LocaleData.java b/android_icu4j/src/main/java/android/icu/util/LocaleData.java
index 4e0c314..84664d8 100644
--- a/android_icu4j/src/main/java/android/icu/util/LocaleData.java
+++ b/android_icu4j/src/main/java/android/icu/util/LocaleData.java
@@ -17,7 +17,6 @@
  * A class for accessing miscellaneous data in the locale bundles
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class LocaleData {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/LocaleMatcher.java b/android_icu4j/src/main/java/android/icu/util/LocaleMatcher.java
index 8d8a79e..c4778a6 100644
--- a/android_icu4j/src/main/java/android/icu/util/LocaleMatcher.java
+++ b/android_icu4j/src/main/java/android/icu/util/LocaleMatcher.java
@@ -47,7 +47,6 @@
  * 
  * @author markdavis@google.com
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocaleMatcher {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/LocalePriorityList.java b/android_icu4j/src/main/java/android/icu/util/LocalePriorityList.java
index 84e5415..4bdbdc4 100644
--- a/android_icu4j/src/main/java/android/icu/util/LocalePriorityList.java
+++ b/android_icu4j/src/main/java/android/icu/util/LocalePriorityList.java
@@ -65,7 +65,6 @@
  * ja;q=1.0</pre>
  * @author markdavis@google.com
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class LocalePriorityList implements Iterable<ULocale> {
     private static final double D0 = 0.0d;
diff --git a/android_icu4j/src/main/java/android/icu/util/Measure.java b/android_icu4j/src/main/java/android/icu/util/Measure.java
index f552dd8..eaf9a50 100644
--- a/android_icu4j/src/main/java/android/icu/util/Measure.java
+++ b/android_icu4j/src/main/java/android/icu/util/Measure.java
@@ -27,7 +27,6 @@
  * @see android.icu.util.MeasureUnit
  * @see android.icu.text.MeasureFormat
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class Measure {
     
diff --git a/android_icu4j/src/main/java/android/icu/util/MeasureUnit.java b/android_icu4j/src/main/java/android/icu/util/MeasureUnit.java
index d0f0c96..2e3811c 100644
--- a/android_icu4j/src/main/java/android/icu/util/MeasureUnit.java
+++ b/android_icu4j/src/main/java/android/icu/util/MeasureUnit.java
@@ -33,7 +33,6 @@
  *
  * @see android.icu.util.Measure
  * @author Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 public class MeasureUnit implements Serializable {
     private static final long serialVersionUID = -1839973855554750484L;
diff --git a/android_icu4j/src/main/java/android/icu/util/Output.java b/android_icu4j/src/main/java/android/icu/util/Output.java
index 867efd3..60d0604 100644
--- a/android_icu4j/src/main/java/android/icu/util/Output.java
+++ b/android_icu4j/src/main/java/android/icu/util/Output.java
@@ -10,7 +10,6 @@
 /**
  * Simple struct-like class for output parameters.
  * @param <T> The type of the parameter.
- * @hide All android.icu classes are currently hidden
  */
 public class Output<T> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/OutputInt.java b/android_icu4j/src/main/java/android/icu/util/OutputInt.java
index ee9ddaf..92d26fb 100644
--- a/android_icu4j/src/main/java/android/icu/util/OutputInt.java
+++ b/android_icu4j/src/main/java/android/icu/util/OutputInt.java
@@ -14,7 +14,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class OutputInt {
diff --git a/android_icu4j/src/main/java/android/icu/util/OverlayBundle.java b/android_icu4j/src/main/java/android/icu/util/OverlayBundle.java
index 3be3221..a08e75f 100644
--- a/android_icu4j/src/main/java/android/icu/util/OverlayBundle.java
+++ b/android_icu4j/src/main/java/android/icu/util/OverlayBundle.java
@@ -63,7 +63,6 @@
  * @deprecated ICU 2.4. This class may be removed or modified.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 // prepare to deprecate in next release
diff --git a/android_icu4j/src/main/java/android/icu/util/PersianCalendar.java b/android_icu4j/src/main/java/android/icu/util/PersianCalendar.java
index 8d0de82..2dc2784 100644
--- a/android_icu4j/src/main/java/android/icu/util/PersianCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/PersianCalendar.java
@@ -63,7 +63,6 @@
  * @deprecated This API is ICU internal only.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 @Deprecated
 public class PersianCalendar extends Calendar {
diff --git a/android_icu4j/src/main/java/android/icu/util/RangeDateRule.java b/android_icu4j/src/main/java/android/icu/util/RangeDateRule.java
index 5259c0d..87a73cb 100644
--- a/android_icu4j/src/main/java/android/icu/util/RangeDateRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/RangeDateRule.java
@@ -19,7 +19,6 @@
  * Implementation of DateRule that takes a range.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class RangeDateRule implements DateRule {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/RangeValueIterator.java b/android_icu4j/src/main/java/android/icu/util/RangeValueIterator.java
index d8d01b5..80464f3 100644
--- a/android_icu4j/src/main/java/android/icu/util/RangeValueIterator.java
+++ b/android_icu4j/src/main/java/android/icu/util/RangeValueIterator.java
@@ -44,7 +44,6 @@
  * }
  * </pre>
  * @author synwee
- * @hide All android.icu classes are currently hidden
  */
 public interface RangeValueIterator
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/Region.java b/android_icu4j/src/main/java/android/icu/util/Region.java
index 7f798bd..1e80899 100644
--- a/android_icu4j/src/main/java/android/icu/util/Region.java
+++ b/android_icu4j/src/main/java/android/icu/util/Region.java
@@ -54,7 +54,6 @@
  *  
  * @author       John Emmons
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public class Region implements Comparable<Region> {
diff --git a/android_icu4j/src/main/java/android/icu/util/RuleBasedTimeZone.java b/android_icu4j/src/main/java/android/icu/util/RuleBasedTimeZone.java
index 2678b8f..96d1ae5 100644
--- a/android_icu4j/src/main/java/android/icu/util/RuleBasedTimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/util/RuleBasedTimeZone.java
@@ -20,7 +20,6 @@
  * @see android.icu.util.TimeZoneRule
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class RuleBasedTimeZone extends BasicTimeZone {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/SimpleDateRule.java b/android_icu4j/src/main/java/android/icu/util/SimpleDateRule.java
index 919a6cd..32e3d8c 100644
--- a/android_icu4j/src/main/java/android/icu/util/SimpleDateRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/SimpleDateRule.java
@@ -17,7 +17,6 @@
  * Simple implementation of DateRule.
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class SimpleDateRule implements DateRule
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/SimpleHoliday.java b/android_icu4j/src/main/java/android/icu/util/SimpleHoliday.java
index eeb7fc4..aa63d9e 100644
--- a/android_icu4j/src/main/java/android/icu/util/SimpleHoliday.java
+++ b/android_icu4j/src/main/java/android/icu/util/SimpleHoliday.java
@@ -19,7 +19,6 @@
  *
  * @hide Only a subset of ICU is exposed in Android
  * @hide draft / provisional / internal are hidden on Android
- * @hide All android.icu classes are currently hidden
  */
 public class SimpleHoliday extends Holiday {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/SimpleTimeZone.java b/android_icu4j/src/main/java/android/icu/util/SimpleTimeZone.java
index a393051..b4e15cf 100644
--- a/android_icu4j/src/main/java/android/icu/util/SimpleTimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/util/SimpleTimeZone.java
@@ -29,7 +29,6 @@
  * @see      TimeZone
  * @author   David Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class SimpleTimeZone extends BasicTimeZone {
     private static final long serialVersionUID = -7034676239311322769L;
diff --git a/android_icu4j/src/main/java/android/icu/util/StringTokenizer.java b/android_icu4j/src/main/java/android/icu/util/StringTokenizer.java
index bba9a17..8e96a95 100644
--- a/android_icu4j/src/main/java/android/icu/util/StringTokenizer.java
+++ b/android_icu4j/src/main/java/android/icu/util/StringTokenizer.java
@@ -100,7 +100,6 @@
  * </p>
  * @author syn wee
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public final class StringTokenizer implements Enumeration<Object>
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/StringTrieBuilder.java b/android_icu4j/src/main/java/android/icu/util/StringTrieBuilder.java
index 2262dae..f543f6d 100644
--- a/android_icu4j/src/main/java/android/icu/util/StringTrieBuilder.java
+++ b/android_icu4j/src/main/java/android/icu/util/StringTrieBuilder.java
@@ -20,7 +20,6 @@
  *
  * @author Markus W. Scherer
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class StringTrieBuilder {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/TaiwanCalendar.java b/android_icu4j/src/main/java/android/icu/util/TaiwanCalendar.java
index e74cabc..8af979e 100644
--- a/android_icu4j/src/main/java/android/icu/util/TaiwanCalendar.java
+++ b/android_icu4j/src/main/java/android/icu/util/TaiwanCalendar.java
@@ -32,7 +32,6 @@
  * @author Laura Werner
  * @author Alan Liu
  * @author Steven R. Loomis
- * @hide All android.icu classes are currently hidden
  */
 public class TaiwanCalendar extends GregorianCalendar {
     // jdk1.4.2 serialver
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeArrayTimeZoneRule.java b/android_icu4j/src/main/java/android/icu/util/TimeArrayTimeZoneRule.java
index 071bc71..a778e12 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeArrayTimeZoneRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeArrayTimeZoneRule.java
@@ -14,7 +14,6 @@
  * defined by an array of milliseconds since the standard base time.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeArrayTimeZoneRule extends TimeZoneRule {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeUnit.java b/android_icu4j/src/main/java/android/icu/util/TimeUnit.java
index d0b356a..9db67b3 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeUnit.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeUnit.java
@@ -15,7 +15,6 @@
  * Measurement unit for time units.
  * @see TimeUnit
  * @author markdavis
- * @hide All android.icu classes are currently hidden
  */
 public class TimeUnit extends MeasureUnit {
     private static final long serialVersionUID = -2839973855554750484L;
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeUnitAmount.java b/android_icu4j/src/main/java/android/icu/util/TimeUnitAmount.java
index 0be0c32..33db0bc 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeUnitAmount.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeUnitAmount.java
@@ -14,7 +14,6 @@
  * @see android.icu.text.TimeUnitFormat
  * @author markdavis
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeUnitAmount extends Measure {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeZone.java b/android_icu4j/src/main/java/android/icu/util/TimeZone.java
index 61190b3..dc46b8c 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeZone.java
@@ -110,7 +110,6 @@
  * @see          GregorianCalendar
  * @see          SimpleTimeZone
  * @author       Mark Davis, David Goldsmith, Chen-Lieh Huang, Alan Liu
- * @hide All android.icu classes are currently hidden
  */
 abstract public class TimeZone implements Serializable, Cloneable, Freezable<TimeZone> {
     /**
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeZoneRule.java b/android_icu4j/src/main/java/android/icu/util/TimeZoneRule.java
index 8b38045..34c040a 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeZoneRule.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeZoneRule.java
@@ -19,7 +19,6 @@
  * @see android.icu.util.RuleBasedTimeZone
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class TimeZoneRule implements Serializable {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeZoneTransition.java b/android_icu4j/src/main/java/android/icu/util/TimeZoneTransition.java
index 076f882..de8fe1f 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeZoneTransition.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeZoneTransition.java
@@ -12,7 +12,6 @@
  * after the transition.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class TimeZoneTransition {
     private final TimeZoneRule from;
diff --git a/android_icu4j/src/main/java/android/icu/util/ULocale.java b/android_icu4j/src/main/java/android/icu/util/ULocale.java
index 03d51bf..c563639 100644
--- a/android_icu4j/src/main/java/android/icu/util/ULocale.java
+++ b/android_icu4j/src/main/java/android/icu/util/ULocale.java
@@ -95,7 +95,6 @@
  * @author weiv
  * @author Alan Liu
  * @author Ram Viswanadha
- * @hide All android.icu classes are currently hidden
  */
 public final class ULocale implements Serializable, Comparable<ULocale> {
     // using serialver from jdk1.4.2_05
diff --git a/android_icu4j/src/main/java/android/icu/util/UResourceBundle.java b/android_icu4j/src/main/java/android/icu/util/UResourceBundle.java
index 6b8d63a..2a81909 100644
--- a/android_icu4j/src/main/java/android/icu/util/UResourceBundle.java
+++ b/android_icu4j/src/main/java/android/icu/util/UResourceBundle.java
@@ -91,7 +91,6 @@
  * </note>
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public abstract class UResourceBundle extends ResourceBundle {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/UResourceBundleIterator.java b/android_icu4j/src/main/java/android/icu/util/UResourceBundleIterator.java
index 226d95f..4d06d5f 100644
--- a/android_icu4j/src/main/java/android/icu/util/UResourceBundleIterator.java
+++ b/android_icu4j/src/main/java/android/icu/util/UResourceBundleIterator.java
@@ -33,7 +33,6 @@
  * </pre>
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UResourceBundleIterator{
     private UResourceBundle bundle;
diff --git a/android_icu4j/src/main/java/android/icu/util/UResourceTypeMismatchException.java b/android_icu4j/src/main/java/android/icu/util/UResourceTypeMismatchException.java
index d88d6a8..c057c67 100644
--- a/android_icu4j/src/main/java/android/icu/util/UResourceTypeMismatchException.java
+++ b/android_icu4j/src/main/java/android/icu/util/UResourceTypeMismatchException.java
@@ -13,7 +13,6 @@
  * is not the same type as the available resource
  * @author ram
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class UResourceTypeMismatchException extends RuntimeException {
     // Generated by serialver from JDK 1.4.1_01
diff --git a/android_icu4j/src/main/java/android/icu/util/UniversalTimeScale.java b/android_icu4j/src/main/java/android/icu/util/UniversalTimeScale.java
index 511f604..b4a55d5 100644
--- a/android_icu4j/src/main/java/android/icu/util/UniversalTimeScale.java
+++ b/android_icu4j/src/main/java/android/icu/util/UniversalTimeScale.java
@@ -49,7 +49,6 @@
  * chapter in the ICU User Guide.</p>
  *
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 
 public final class UniversalTimeScale
diff --git a/android_icu4j/src/main/java/android/icu/util/VTimeZone.java b/android_icu4j/src/main/java/android/icu/util/VTimeZone.java
index 6d53648..3c004a8 100644
--- a/android_icu4j/src/main/java/android/icu/util/VTimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/util/VTimeZone.java
@@ -33,7 +33,6 @@
  * do nothing with MIME encoding.
  * 
  * @hide Only a subset of ICU is exposed in Android
- * @hide All android.icu classes are currently hidden
  */
 public class VTimeZone extends BasicTimeZone {
 
diff --git a/android_icu4j/src/main/java/android/icu/util/ValueIterator.java b/android_icu4j/src/main/java/android/icu/util/ValueIterator.java
index fe23f3f..54d51d7 100644
--- a/android_icu4j/src/main/java/android/icu/util/ValueIterator.java
+++ b/android_icu4j/src/main/java/android/icu/util/ValueIterator.java
@@ -31,7 +31,6 @@
  * }
  * </pre>
  * @author synwee
- * @hide All android.icu classes are currently hidden
  */
 public interface ValueIterator
 {
diff --git a/android_icu4j/src/main/java/android/icu/util/VersionInfo.java b/android_icu4j/src/main/java/android/icu/util/VersionInfo.java
index 6569ea0..1b7be18 100644
--- a/android_icu4j/src/main/java/android/icu/util/VersionInfo.java
+++ b/android_icu4j/src/main/java/android/icu/util/VersionInfo.java
@@ -13,7 +13,6 @@
 /**
  * Class to store version numbers of the form major.minor.milli.micro.
  * @author synwee
- * @hide All android.icu classes are currently hidden
  */
 public final class VersionInfo implements Comparable<VersionInfo>
 {
diff --git a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
index 6dd39d5..8a32835 100644
--- a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
+++ b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
@@ -633,13 +633,6 @@
 
       List<Rule> rulesList = Lists.newArrayList(repackageRules);
       rulesList.addAll(Arrays.asList(apiDocsRules));
-
-      // Comment/remove the lines below to make ICU part of the Android public API.
-      rulesList.add(
-          // AST change: Hide every public class until we're ready to make the Android subset
-          // public.
-          createOptionalRule(new HidePublicClasses(Collections.<TypeLocator>emptyList(),
-              "All android.icu classes are currently hidden")));
       return rulesList;
     }
 
