summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/os/BadParcelableException.java1
-rw-r--r--core/java/android/os/BadTypeParcelableException.java1
-rw-r--r--core/java/android/os/BaseBundle.java1
-rw-r--r--core/java/android/os/Bundle.java1
-rw-r--r--core/java/android/os/DeadObjectException.java1
-rw-r--r--core/java/android/os/DeadSystemException.java1
-rw-r--r--core/java/android/os/HandlerExecutor.java2
-rw-r--r--core/java/android/os/ParcelFormatException.java1
-rw-r--r--core/java/android/os/ParcelUuid.java1
-rw-r--r--core/java/android/os/PatternMatcher.java1
-rw-r--r--core/java/android/os/PersistableBundle.java1
-rw-r--r--core/java/android/os/RemoteException.java1
-rw-r--r--core/java/android/os/TransactionTooLargeException.java1
-rw-r--r--core/java/android/util/AndroidException.java1
-rw-r--r--core/java/android/util/AndroidRuntimeException.java1
-rw-r--r--core/java/android/util/ArrayMap.java1
-rw-r--r--core/java/android/util/ArraySet.java1
-rw-r--r--core/java/android/util/BackupUtils.java2
-rw-r--r--core/java/android/util/Base64.java1
-rw-r--r--core/java/android/util/Base64DataException.java1
-rw-r--r--core/java/android/util/Base64InputStream.java1
-rw-r--r--core/java/android/util/Base64OutputStream.java1
-rw-r--r--core/java/android/util/ContainerHelpers.java1
-rw-r--r--core/java/android/util/DebugUtils.java1
-rw-r--r--core/java/android/util/Dumpable.java1
-rw-r--r--core/java/android/util/EmptyArray.java1
-rw-r--r--core/java/android/util/FloatProperty.java1
-rw-r--r--core/java/android/util/IndentingPrintWriter.java2
-rw-r--r--core/java/android/util/IntProperty.java1
-rw-r--r--core/java/android/util/JsonReader.java1
-rw-r--r--core/java/android/util/JsonWriter.java1
-rw-r--r--core/java/android/util/LocalLog.java2
-rw-r--r--core/java/android/util/Log.java3
-rw-r--r--core/java/android/util/LogPrinter.java1
-rw-r--r--core/java/android/util/LongSparseArray.java1
-rw-r--r--core/java/android/util/MalformedJsonException.java1
-rw-r--r--core/java/android/util/MapCollections.java1
-rw-r--r--core/java/android/util/MathUtils.java1
-rw-r--r--core/java/android/util/MutableBoolean.java1
-rw-r--r--core/java/android/util/MutableByte.java1
-rw-r--r--core/java/android/util/MutableChar.java1
-rw-r--r--core/java/android/util/MutableDouble.java1
-rw-r--r--core/java/android/util/MutableFloat.java1
-rw-r--r--core/java/android/util/MutableShort.java1
-rw-r--r--core/java/android/util/NoSuchPropertyException.java1
-rw-r--r--core/java/android/util/Pair.java2
-rw-r--r--core/java/android/util/Patterns.java1
-rw-r--r--core/java/android/util/PrintStreamPrinter.java1
-rw-r--r--core/java/android/util/PrintWriterPrinter.java1
-rw-r--r--core/java/android/util/Printer.java1
-rw-r--r--core/java/android/util/Property.java1
-rw-r--r--core/java/android/util/Range.java1
-rw-r--r--core/java/android/util/Rational.java2
-rw-r--r--core/java/android/util/ReflectiveProperty.java1
-rw-r--r--core/java/android/util/Size.java1
-rw-r--r--core/java/android/util/SizeF.java1
-rw-r--r--core/java/android/util/SparseArray.java1
-rw-r--r--core/java/android/util/SparseArrayMap.java1
-rw-r--r--core/java/android/util/SparseBooleanArray.java1
-rw-r--r--core/java/android/util/SparseIntArray.java1
-rw-r--r--core/java/android/util/SparseLongArray.java1
-rw-r--r--core/java/android/util/StringBuilderPrinter.java1
-rw-r--r--core/java/android/util/UtilConfig.java1
-rw-r--r--core/java/android/util/proto/EncodedBuffer.java1
-rw-r--r--core/java/android/util/proto/ProtoInputStream.java1
-rw-r--r--core/java/android/util/proto/ProtoOutputStream.java1
-rw-r--r--core/java/android/util/proto/ProtoParseException.java1
-rw-r--r--core/java/android/util/proto/ProtoStream.java1
-rw-r--r--core/java/android/util/proto/ProtoUtils.java1
-rw-r--r--core/java/android/util/proto/WireTypeMismatchException.java1
-rw-r--r--core/java/com/android/internal/util/FileRotator.java2
-rw-r--r--core/java/com/android/internal/util/HexDump.java2
-rw-r--r--core/java/com/android/internal/util/IndentingPrintWriter.java2
-rw-r--r--core/java/com/android/internal/util/LocalLog.java2
-rw-r--r--core/java/com/android/internal/util/MessageUtils.java2
-rw-r--r--core/java/com/android/internal/util/TokenBucket.java2
-rw-r--r--core/java/com/android/internal/util/XmlPullParserWrapper.java1
-rw-r--r--core/java/com/android/internal/util/XmlSerializerWrapper.java1
-rw-r--r--core/java/com/android/internal/util/XmlUtils.java1
-rw-r--r--ravenwood/framework-minus-apex-ravenwood-policies.txt119
-rw-r--r--ravenwood/ravenwood-annotation-allowed-classes.txt76
81 files changed, 181 insertions, 107 deletions
diff --git a/core/java/android/os/BadParcelableException.java b/core/java/android/os/BadParcelableException.java
index 9b1343ca7d82..3c0fa0e6d96a 100644
--- a/core/java/android/os/BadParcelableException.java
+++ b/core/java/android/os/BadParcelableException.java
@@ -25,6 +25,7 @@ import android.util.AndroidRuntimeException;
* passed to another process that doesn't have the same {@link Parcelable} class
* in its {@link ClassLoader}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BadParcelableException extends AndroidRuntimeException {
public BadParcelableException(String msg) {
super(msg);
diff --git a/core/java/android/os/BadTypeParcelableException.java b/core/java/android/os/BadTypeParcelableException.java
index 2ca3bd2adca1..cc75c73824f3 100644
--- a/core/java/android/os/BadTypeParcelableException.java
+++ b/core/java/android/os/BadTypeParcelableException.java
@@ -17,6 +17,7 @@
package android.os;
/** Used by Parcel to signal that the type on the payload was not expected by the caller. */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class BadTypeParcelableException extends BadParcelableException {
BadTypeParcelableException(String msg) {
super(msg);
diff --git a/core/java/android/os/BaseBundle.java b/core/java/android/os/BaseBundle.java
index 4e3adfbdda3f..9a63394d3ca1 100644
--- a/core/java/android/os/BaseBundle.java
+++ b/core/java/android/os/BaseBundle.java
@@ -43,6 +43,7 @@ import java.util.function.BiFunction;
* should work directly with either the {@link Bundle} or
* {@link PersistableBundle} subclass.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BaseBundle {
/** @hide */
protected static final String TAG = "Bundle";
diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java
index e845ffa2c43c..387eebe0f376 100644
--- a/core/java/android/os/Bundle.java
+++ b/core/java/android/os/Bundle.java
@@ -42,6 +42,7 @@ import java.util.List;
*
* @see PersistableBundle
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Bundle extends BaseBundle implements Cloneable, Parcelable {
@VisibleForTesting
static final int FLAG_HAS_FDS = 1 << 8;
diff --git a/core/java/android/os/DeadObjectException.java b/core/java/android/os/DeadObjectException.java
index 61aa222ef482..fc3870e812a2 100644
--- a/core/java/android/os/DeadObjectException.java
+++ b/core/java/android/os/DeadObjectException.java
@@ -43,6 +43,7 @@ import android.os.RemoteException;
* this information at runtime. So, you should handle the
* error, as if the service died.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DeadObjectException extends RemoteException {
public DeadObjectException() {
super();
diff --git a/core/java/android/os/DeadSystemException.java b/core/java/android/os/DeadSystemException.java
index 8fb53e2f4eb4..3aff48ae658f 100644
--- a/core/java/android/os/DeadSystemException.java
+++ b/core/java/android/os/DeadSystemException.java
@@ -20,6 +20,7 @@ package android.os;
* The core Android system has died and is going through a runtime restart. All
* running apps will be promptly killed.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DeadSystemException extends DeadObjectException {
public DeadSystemException() {
super();
diff --git a/core/java/android/os/HandlerExecutor.java b/core/java/android/os/HandlerExecutor.java
index 416b24b5ed05..3496979b7714 100644
--- a/core/java/android/os/HandlerExecutor.java
+++ b/core/java/android/os/HandlerExecutor.java
@@ -29,6 +29,8 @@ import java.util.concurrent.RejectedExecutionException;
*
* @hide
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class HandlerExecutor implements Executor {
private final Handler mHandler;
diff --git a/core/java/android/os/ParcelFormatException.java b/core/java/android/os/ParcelFormatException.java
index 8b6fda08ba5f..6dcc1dca5708 100644
--- a/core/java/android/os/ParcelFormatException.java
+++ b/core/java/android/os/ParcelFormatException.java
@@ -20,6 +20,7 @@ package android.os;
* The contents of a Parcel (usually during unmarshalling) does not
* contain the expected data.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ParcelFormatException extends RuntimeException {
public ParcelFormatException() {
super();
diff --git a/core/java/android/os/ParcelUuid.java b/core/java/android/os/ParcelUuid.java
index b529694b6033..a35c0501e04f 100644
--- a/core/java/android/os/ParcelUuid.java
+++ b/core/java/android/os/ParcelUuid.java
@@ -26,6 +26,7 @@ import java.util.UUID;
* immutable representation of a 128-bit universally unique
* identifier.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ParcelUuid implements Parcelable {
private final UUID mUuid;
diff --git a/core/java/android/os/PatternMatcher.java b/core/java/android/os/PatternMatcher.java
index 79a2c59d6a03..a79714ce709a 100644
--- a/core/java/android/os/PatternMatcher.java
+++ b/core/java/android/os/PatternMatcher.java
@@ -29,6 +29,7 @@ import java.util.Arrays;
* not provide full reg-exp support, only simple globbing that can not be
* used maliciously.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PatternMatcher implements Parcelable {
/**
* Pattern type: the given pattern must exactly match the string it is
diff --git a/core/java/android/os/PersistableBundle.java b/core/java/android/os/PersistableBundle.java
index 236194d16ad8..0c1ea4df7536 100644
--- a/core/java/android/os/PersistableBundle.java
+++ b/core/java/android/os/PersistableBundle.java
@@ -49,6 +49,7 @@ import java.util.ArrayList;
*
* @see Bundle
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class PersistableBundle extends BaseBundle implements Cloneable, Parcelable,
XmlUtils.WriteMapCallback {
private static final String TAG = "PersistableBundle";
diff --git a/core/java/android/os/RemoteException.java b/core/java/android/os/RemoteException.java
index ace5f7e8393f..27fe0cf47424 100644
--- a/core/java/android/os/RemoteException.java
+++ b/core/java/android/os/RemoteException.java
@@ -28,6 +28,7 @@ import android.util.AndroidException;
*
* One common subclass is {@link DeadObjectException}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class RemoteException extends AndroidException {
public RemoteException() {
super();
diff --git a/core/java/android/os/TransactionTooLargeException.java b/core/java/android/os/TransactionTooLargeException.java
index 4d5b2a10f3fe..79892e060f49 100644
--- a/core/java/android/os/TransactionTooLargeException.java
+++ b/core/java/android/os/TransactionTooLargeException.java
@@ -54,6 +54,7 @@ import android.os.RemoteException;
* later as needed.
* </p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TransactionTooLargeException extends RemoteException {
public TransactionTooLargeException() {
super();
diff --git a/core/java/android/util/AndroidException.java b/core/java/android/util/AndroidException.java
index d1b9d9f3c53a..8e2429abecac 100644
--- a/core/java/android/util/AndroidException.java
+++ b/core/java/android/util/AndroidException.java
@@ -19,6 +19,7 @@ package android.util;
/**
* Base class for all checked exceptions thrown by the Android frameworks.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AndroidException extends Exception {
public AndroidException() {
}
diff --git a/core/java/android/util/AndroidRuntimeException.java b/core/java/android/util/AndroidRuntimeException.java
index 72c34d8b75ac..1c3f20123252 100644
--- a/core/java/android/util/AndroidRuntimeException.java
+++ b/core/java/android/util/AndroidRuntimeException.java
@@ -19,6 +19,7 @@ package android.util;
/**
* Base class for all unchecked exceptions thrown by the Android frameworks.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class AndroidRuntimeException extends RuntimeException {
public AndroidRuntimeException() {
}
diff --git a/core/java/android/util/ArrayMap.java b/core/java/android/util/ArrayMap.java
index 2945c8fecd89..174e0c8e6549 100644
--- a/core/java/android/util/ArrayMap.java
+++ b/core/java/android/util/ArrayMap.java
@@ -53,6 +53,7 @@ import java.util.function.BiFunction;
*
* <p>This structure is <b>NOT</b> thread-safe.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ArrayMap<K, V> implements Map<K, V> {
private static final boolean DEBUG = false;
private static final String TAG = "ArrayMap";
diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java
index adebe2cbb458..bfbca07ed256 100644
--- a/core/java/android/util/ArraySet.java
+++ b/core/java/android/util/ArraySet.java
@@ -51,6 +51,7 @@ import java.util.function.Predicate;
*
* <p>This structure is <b>NOT</b> thread-safe.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ArraySet<E> implements Collection<E>, Set<E> {
private static final boolean DEBUG = false;
private static final String TAG = "ArraySet";
diff --git a/core/java/android/util/BackupUtils.java b/core/java/android/util/BackupUtils.java
index 4fcb13c2bcf6..75471c18b0e6 100644
--- a/core/java/android/util/BackupUtils.java
+++ b/core/java/android/util/BackupUtils.java
@@ -24,6 +24,8 @@ import java.io.IOException;
* Utility methods for Backup/Restore
* @hide
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class BackupUtils {
public static final int NULL = 0;
diff --git a/core/java/android/util/Base64.java b/core/java/android/util/Base64.java
index 92abd7c15f5f..99151c27e415 100644
--- a/core/java/android/util/Base64.java
+++ b/core/java/android/util/Base64.java
@@ -26,6 +26,7 @@ import java.io.UnsupportedEncodingException;
* href="http://www.ietf.org/rfc/rfc2045.txt">2045</a> and <a
* href="http://www.ietf.org/rfc/rfc3548.txt">3548</a>.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Base64 {
/**
* Default values for encoder/decoder flags.
diff --git a/core/java/android/util/Base64DataException.java b/core/java/android/util/Base64DataException.java
index de12ee1c01e5..41963dc59e4f 100644
--- a/core/java/android/util/Base64DataException.java
+++ b/core/java/android/util/Base64DataException.java
@@ -23,6 +23,7 @@ import java.io.IOException;
* when an error is detected in the data being decoded. This allows problems with the base64 data
* to be disambiguated from errors in the underlying streams (e.g. actual connection errors.)
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Base64DataException extends IOException {
public Base64DataException(String detailMessage) {
super(detailMessage);
diff --git a/core/java/android/util/Base64InputStream.java b/core/java/android/util/Base64InputStream.java
index 9eba5b5891be..85802d29a2ae 100644
--- a/core/java/android/util/Base64InputStream.java
+++ b/core/java/android/util/Base64InputStream.java
@@ -24,6 +24,7 @@ import java.io.InputStream;
* An InputStream that does Base64 decoding on the data read through
* it.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Base64InputStream extends FilterInputStream {
private final Base64.Coder coder;
diff --git a/core/java/android/util/Base64OutputStream.java b/core/java/android/util/Base64OutputStream.java
index 48fadeb2a5af..9ae14704038f 100644
--- a/core/java/android/util/Base64OutputStream.java
+++ b/core/java/android/util/Base64OutputStream.java
@@ -26,6 +26,7 @@ import java.io.OutputStream;
* An OutputStream that does Base64 encoding on the data written to
* it, writing the resulting data to another OutputStream.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Base64OutputStream extends FilterOutputStream {
private final Base64.Coder coder;
private final int flags;
diff --git a/core/java/android/util/ContainerHelpers.java b/core/java/android/util/ContainerHelpers.java
index 4e5fefb9de8e..0077c91e15eb 100644
--- a/core/java/android/util/ContainerHelpers.java
+++ b/core/java/android/util/ContainerHelpers.java
@@ -16,6 +16,7 @@
package android.util;
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class ContainerHelpers {
// This is Arrays.binarySearch(), but doesn't do any argument validation.
diff --git a/core/java/android/util/DebugUtils.java b/core/java/android/util/DebugUtils.java
index bab20893a118..5725a23a8e39 100644
--- a/core/java/android/util/DebugUtils.java
+++ b/core/java/android/util/DebugUtils.java
@@ -33,6 +33,7 @@ import java.util.stream.Collectors;
/**
* <p>Various utilities for debugging and logging.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DebugUtils {
/** @hide */ public DebugUtils() {}
diff --git a/core/java/android/util/Dumpable.java b/core/java/android/util/Dumpable.java
index 955113d9e21e..9aa7e99c162d 100644
--- a/core/java/android/util/Dumpable.java
+++ b/core/java/android/util/Dumpable.java
@@ -23,6 +23,7 @@ import java.io.PrintWriter;
/**
* Represents an object whose state can be dumped into a {@link PrintWriter}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Dumpable {
/**
diff --git a/core/java/android/util/EmptyArray.java b/core/java/android/util/EmptyArray.java
index 1216024af23e..cfb10939568f 100644
--- a/core/java/android/util/EmptyArray.java
+++ b/core/java/android/util/EmptyArray.java
@@ -23,6 +23,7 @@ import android.annotation.NonNull;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class EmptyArray {
private EmptyArray() {}
diff --git a/core/java/android/util/FloatProperty.java b/core/java/android/util/FloatProperty.java
index 4aac1962ebcf..7af05e186bfc 100644
--- a/core/java/android/util/FloatProperty.java
+++ b/core/java/android/util/FloatProperty.java
@@ -24,6 +24,7 @@ package android.util;
*
* @param <T> The class on which the Property is declared.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class FloatProperty<T> extends Property<T, Float> {
public FloatProperty(String name) {
diff --git a/core/java/android/util/IndentingPrintWriter.java b/core/java/android/util/IndentingPrintWriter.java
index 9d2ebe85a1cb..651991890e5d 100644
--- a/core/java/android/util/IndentingPrintWriter.java
+++ b/core/java/android/util/IndentingPrintWriter.java
@@ -33,6 +33,8 @@ import java.util.Arrays;
*
* @hide
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class IndentingPrintWriter extends PrintWriter {
private final String mSingleIndent;
private final int mWrapLength;
diff --git a/core/java/android/util/IntProperty.java b/core/java/android/util/IntProperty.java
index 9e21cedf1b4b..6bb2ebe639f7 100644
--- a/core/java/android/util/IntProperty.java
+++ b/core/java/android/util/IntProperty.java
@@ -24,6 +24,7 @@ package android.util;
*
* @param <T> The class on which the Property is declared.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class IntProperty<T> extends Property<T, Integer> {
public IntProperty(String name) {
diff --git a/core/java/android/util/JsonReader.java b/core/java/android/util/JsonReader.java
index c75e23807432..38439ca0b52f 100644
--- a/core/java/android/util/JsonReader.java
+++ b/core/java/android/util/JsonReader.java
@@ -175,6 +175,7 @@ import java.util.List;
* <p>Each {@code JsonReader} may be used to read a single JSON stream. Instances
* of this class are not thread safe.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class JsonReader implements Closeable {
private static final String TRUE = "true";
diff --git a/core/java/android/util/JsonWriter.java b/core/java/android/util/JsonWriter.java
index c1e6e400aa93..1075d4b028e3 100644
--- a/core/java/android/util/JsonWriter.java
+++ b/core/java/android/util/JsonWriter.java
@@ -117,6 +117,7 @@ import java.util.List;
* Instances of this class are not thread safe. Calls that would result in a
* malformed JSON string will fail with an {@link IllegalStateException}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class JsonWriter implements Closeable {
/** The output data, containing at most one top-level array or object. */
diff --git a/core/java/android/util/LocalLog.java b/core/java/android/util/LocalLog.java
index cd077e1f756c..feb80cc28e77 100644
--- a/core/java/android/util/LocalLog.java
+++ b/core/java/android/util/LocalLog.java
@@ -32,6 +32,8 @@ import java.util.Iterator;
/**
* @hide
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class LocalLog {
private final Deque<String> mLog;
diff --git a/core/java/android/util/Log.java b/core/java/android/util/Log.java
index f1e91d0234e4..31576c5c74fc 100644
--- a/core/java/android/util/Log.java
+++ b/core/java/android/util/Log.java
@@ -71,6 +71,9 @@ import java.net.UnknownHostException;
* releases due to changes in the logging implementation. For the methods that return an integer,
* a positive value may be considered as a successful invocation.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
+@android.ravenwood.annotation.RavenwoodNativeSubstitutionClass(
+ "com.android.hoststubgen.nativesubstitution.Log_host")
public final class Log {
/** @hide */
@IntDef({ASSERT, ERROR, WARN, INFO, DEBUG, VERBOSE})
diff --git a/core/java/android/util/LogPrinter.java b/core/java/android/util/LogPrinter.java
index 68f64d0dde4b..169de6880d20 100644
--- a/core/java/android/util/LogPrinter.java
+++ b/core/java/android/util/LogPrinter.java
@@ -20,6 +20,7 @@ package android.util;
* Implementation of a {@link android.util.Printer} that sends its output
* to the system log.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LogPrinter implements Printer {
private final int mPriority;
private final String mTag;
diff --git a/core/java/android/util/LongSparseArray.java b/core/java/android/util/LongSparseArray.java
index 8402ab2d871c..e428fb2f7c12 100644
--- a/core/java/android/util/LongSparseArray.java
+++ b/core/java/android/util/LongSparseArray.java
@@ -55,6 +55,7 @@ import java.util.Objects;
* keys in ascending order, or the values corresponding to the keys in ascending
* order in the case of <code>valueAt(int)</code>.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LongSparseArray<E> implements Cloneable {
private static final Object DELETED = new Object();
private boolean mGarbage = false;
diff --git a/core/java/android/util/MalformedJsonException.java b/core/java/android/util/MalformedJsonException.java
index 63c19ff86cd4..40cc0789838d 100644
--- a/core/java/android/util/MalformedJsonException.java
+++ b/core/java/android/util/MalformedJsonException.java
@@ -22,6 +22,7 @@ import java.io.IOException;
* Thrown when a reader encounters malformed JSON. Some syntax errors can be
* ignored by calling {@link JsonReader#setLenient(boolean)}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MalformedJsonException extends IOException {
private static final long serialVersionUID = 1L;
diff --git a/core/java/android/util/MapCollections.java b/core/java/android/util/MapCollections.java
index 7ab3fcaeedc4..cce3a0e3eaa9 100644
--- a/core/java/android/util/MapCollections.java
+++ b/core/java/android/util/MapCollections.java
@@ -31,6 +31,7 @@ import java.util.Set;
* structure like {@link ArrayMap}.
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
abstract class MapCollections<K, V> {
EntrySet mEntrySet;
KeySet mKeySet;
diff --git a/core/java/android/util/MathUtils.java b/core/java/android/util/MathUtils.java
index aecde4415117..97ea5dad04d8 100644
--- a/core/java/android/util/MathUtils.java
+++ b/core/java/android/util/MathUtils.java
@@ -24,6 +24,7 @@ import android.graphics.Rect;
*
* @hide Pending API council approval
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MathUtils {
private static final float DEG_TO_RAD = 3.1415926f / 180.0f;
private static final float RAD_TO_DEG = 180.0f / 3.1415926f;
diff --git a/core/java/android/util/MutableBoolean.java b/core/java/android/util/MutableBoolean.java
index 44e73cc38b8f..5e0700aafc2e 100644
--- a/core/java/android/util/MutableBoolean.java
+++ b/core/java/android/util/MutableBoolean.java
@@ -20,6 +20,7 @@ package android.util;
* @deprecated This class will be removed from a future version of the Android API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MutableBoolean {
public boolean value;
diff --git a/core/java/android/util/MutableByte.java b/core/java/android/util/MutableByte.java
index b9ec25dab2ad..e0cbc57e2c6c 100644
--- a/core/java/android/util/MutableByte.java
+++ b/core/java/android/util/MutableByte.java
@@ -20,6 +20,7 @@ package android.util;
* @deprecated This class will be removed from a future version of the Android API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MutableByte {
public byte value;
diff --git a/core/java/android/util/MutableChar.java b/core/java/android/util/MutableChar.java
index 9f7a9ae82c32..22b8a559c643 100644
--- a/core/java/android/util/MutableChar.java
+++ b/core/java/android/util/MutableChar.java
@@ -20,6 +20,7 @@ package android.util;
* @deprecated This class will be removed from a future version of the Android API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MutableChar {
public char value;
diff --git a/core/java/android/util/MutableDouble.java b/core/java/android/util/MutableDouble.java
index 56e539bc0f6f..ce85fa28374a 100644
--- a/core/java/android/util/MutableDouble.java
+++ b/core/java/android/util/MutableDouble.java
@@ -20,6 +20,7 @@ package android.util;
* @deprecated This class will be removed from a future version of the Android API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MutableDouble {
public double value;
diff --git a/core/java/android/util/MutableFloat.java b/core/java/android/util/MutableFloat.java
index 6d7ad59d2473..c2bfdb007296 100644
--- a/core/java/android/util/MutableFloat.java
+++ b/core/java/android/util/MutableFloat.java
@@ -20,6 +20,7 @@ package android.util;
* @deprecated This class will be removed from a future version of the Android API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MutableFloat {
public float value;
diff --git a/core/java/android/util/MutableShort.java b/core/java/android/util/MutableShort.java
index b94ab0732251..1f81c4169201 100644
--- a/core/java/android/util/MutableShort.java
+++ b/core/java/android/util/MutableShort.java
@@ -20,6 +20,7 @@ package android.util;
* @deprecated This class will be removed from a future version of the Android API.
*/
@Deprecated
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class MutableShort {
public short value;
diff --git a/core/java/android/util/NoSuchPropertyException.java b/core/java/android/util/NoSuchPropertyException.java
index b93f9830f73a..d4f2098f3bef 100644
--- a/core/java/android/util/NoSuchPropertyException.java
+++ b/core/java/android/util/NoSuchPropertyException.java
@@ -21,6 +21,7 @@ package android.util;
*
* @see Property#of(java.lang.Class, java.lang.Class, java.lang.String)
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class NoSuchPropertyException extends RuntimeException {
public NoSuchPropertyException(String s) {
diff --git a/core/java/android/util/Pair.java b/core/java/android/util/Pair.java
index b0866b440be5..96708f6bf889 100644
--- a/core/java/android/util/Pair.java
+++ b/core/java/android/util/Pair.java
@@ -25,6 +25,8 @@ import java.util.Objects;
* implementation of equals(), returning true if equals() is true on each of the contained
* objects.
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Pair<F, S> {
public final F first;
public final S second;
diff --git a/core/java/android/util/Patterns.java b/core/java/android/util/Patterns.java
index c4660c474e57..58dff963de5a 100644
--- a/core/java/android/util/Patterns.java
+++ b/core/java/android/util/Patterns.java
@@ -22,6 +22,7 @@ import java.util.regex.Pattern;
/**
* Commonly used regular expression patterns.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class Patterns {
/**
* Regular expression to match all IANA top-level domains.
diff --git a/core/java/android/util/PrintStreamPrinter.java b/core/java/android/util/PrintStreamPrinter.java
index 1c11f15ca200..330dd3171e82 100644
--- a/core/java/android/util/PrintStreamPrinter.java
+++ b/core/java/android/util/PrintStreamPrinter.java
@@ -22,6 +22,7 @@ import java.io.PrintStream;
* Implementation of a {@link android.util.Printer} that sends its output
* to a {@link java.io.PrintStream}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PrintStreamPrinter implements Printer {
private final PrintStream mPS;
diff --git a/core/java/android/util/PrintWriterPrinter.java b/core/java/android/util/PrintWriterPrinter.java
index 82c4d03a8192..aa935eb6e5f7 100644
--- a/core/java/android/util/PrintWriterPrinter.java
+++ b/core/java/android/util/PrintWriterPrinter.java
@@ -22,6 +22,7 @@ import java.io.PrintWriter;
* Implementation of a {@link android.util.Printer} that sends its output
* to a {@link java.io.PrintWriter}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class PrintWriterPrinter implements Printer {
private final PrintWriter mPW;
diff --git a/core/java/android/util/Printer.java b/core/java/android/util/Printer.java
index 595cf70e3068..5106a2952da3 100644
--- a/core/java/android/util/Printer.java
+++ b/core/java/android/util/Printer.java
@@ -22,6 +22,7 @@ package android.util;
* {@link android.util.StringBuilderPrinter}, and
* {@link android.util.PrintWriterPrinter}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Printer {
/**
* Write a line of text to the output. There is no need to terminate
diff --git a/core/java/android/util/Property.java b/core/java/android/util/Property.java
index 146db80b83fb..88a3c7e8a858 100644
--- a/core/java/android/util/Property.java
+++ b/core/java/android/util/Property.java
@@ -25,6 +25,7 @@ package android.util;
* @param <T> The class on which the property is declared.
* @param <V> The type that this property represents.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class Property<T, V> {
private final String mName;
diff --git a/core/java/android/util/Range.java b/core/java/android/util/Range.java
index 750696b9b90f..32b63eef8b03 100644
--- a/core/java/android/util/Range.java
+++ b/core/java/android/util/Range.java
@@ -38,6 +38,7 @@ import java.util.Objects;
* stored must also be immutable. If mutable objects are stored here, then the range
* effectively becomes mutable. </p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Range<T extends Comparable<? super T>> {
/**
* Create a new immutable range.
diff --git a/core/java/android/util/Rational.java b/core/java/android/util/Rational.java
index d7730f2b0b3f..bb709371e8d7 100644
--- a/core/java/android/util/Rational.java
+++ b/core/java/android/util/Rational.java
@@ -30,6 +30,8 @@ import java.io.InvalidObjectException;
* <p>Contains a pair of {@code int}s representing the numerator and denominator of a
* Rational number. </p>
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Rational extends Number implements Comparable<Rational> {
/**
* Constant for the <em>Not-a-Number (NaN)</em> value of the {@code Rational} type.
diff --git a/core/java/android/util/ReflectiveProperty.java b/core/java/android/util/ReflectiveProperty.java
index 6832240f385b..41900dcc398b 100644
--- a/core/java/android/util/ReflectiveProperty.java
+++ b/core/java/android/util/ReflectiveProperty.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Method;
* Internal class to automatically generate a Property for a given class/name pair, given the
* specification of {@link Property#of(java.lang.Class, java.lang.Class, java.lang.String)}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
class ReflectiveProperty<T, V> extends Property<T, V> {
private static final String PREFIX_GET = "get";
diff --git a/core/java/android/util/Size.java b/core/java/android/util/Size.java
index 62df5647cdaa..05d74688d77d 100644
--- a/core/java/android/util/Size.java
+++ b/core/java/android/util/Size.java
@@ -21,6 +21,7 @@ import static com.android.internal.util.Preconditions.checkNotNull;
/**
* Immutable class for describing width and height dimensions in pixels.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class Size {
/**
* Create a new immutable Size instance.
diff --git a/core/java/android/util/SizeF.java b/core/java/android/util/SizeF.java
index c77a02434941..9473c441cd5e 100644
--- a/core/java/android/util/SizeF.java
+++ b/core/java/android/util/SizeF.java
@@ -30,6 +30,7 @@ import android.os.Parcelable;
* Width and height are finite values stored as a floating point representation.
* </p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class SizeF implements Parcelable {
/**
* Create a new immutable SizeF instance.
diff --git a/core/java/android/util/SparseArray.java b/core/java/android/util/SparseArray.java
index c18cac3a4fbc..26111f88da78 100644
--- a/core/java/android/util/SparseArray.java
+++ b/core/java/android/util/SparseArray.java
@@ -54,6 +54,7 @@ import java.util.Objects;
* keys in ascending order. In the case of <code>valueAt(int)</code>, the
* values corresponding to the keys are returned in ascending order.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseArray<E> implements Cloneable {
private static final Object DELETED = new Object();
private boolean mGarbage = false;
diff --git a/core/java/android/util/SparseArrayMap.java b/core/java/android/util/SparseArrayMap.java
index b4e1f59874b0..1ce73138122a 100644
--- a/core/java/android/util/SparseArrayMap.java
+++ b/core/java/android/util/SparseArrayMap.java
@@ -31,6 +31,7 @@ import java.util.function.Consumer;
* @hide
*/
@TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseArrayMap<K, V> {
private final SparseArray<ArrayMap<K, V>> mData = new SparseArray<>();
diff --git a/core/java/android/util/SparseBooleanArray.java b/core/java/android/util/SparseBooleanArray.java
index 795f4c99f356..bca7ffcd44d6 100644
--- a/core/java/android/util/SparseBooleanArray.java
+++ b/core/java/android/util/SparseBooleanArray.java
@@ -44,6 +44,7 @@ import com.android.internal.util.GrowingArrayUtils;
* keys in ascending order, or the values corresponding to the keys in ascending
* order in the case of <code>valueAt(int)</code>.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseBooleanArray implements Cloneable {
/**
* Creates a new SparseBooleanArray containing no mappings.
diff --git a/core/java/android/util/SparseIntArray.java b/core/java/android/util/SparseIntArray.java
index 24d04be1b46d..500d1331feef 100644
--- a/core/java/android/util/SparseIntArray.java
+++ b/core/java/android/util/SparseIntArray.java
@@ -44,6 +44,7 @@ import java.util.Arrays;
* keys in ascending order, or the values corresponding to the keys in ascending
* order in the case of <code>valueAt(int)</code>.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseIntArray implements Cloneable {
@UnsupportedAppUsage(maxTargetSdk = 28) // Use keyAt(int)
private int[] mKeys;
diff --git a/core/java/android/util/SparseLongArray.java b/core/java/android/util/SparseLongArray.java
index 4b257e62bc75..c7c272be2717 100644
--- a/core/java/android/util/SparseLongArray.java
+++ b/core/java/android/util/SparseLongArray.java
@@ -40,6 +40,7 @@ import com.android.internal.util.GrowingArrayUtils;
* keys in ascending order, or the values corresponding to the keys in ascending
* order in the case of <code>valueAt(int)</code>.</p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class SparseLongArray implements Cloneable {
private int[] mKeys;
private long[] mValues;
diff --git a/core/java/android/util/StringBuilderPrinter.java b/core/java/android/util/StringBuilderPrinter.java
index d0fc1e7073cf..ee04f1482ae0 100644
--- a/core/java/android/util/StringBuilderPrinter.java
+++ b/core/java/android/util/StringBuilderPrinter.java
@@ -20,6 +20,7 @@ package android.util;
* Implementation of a {@link android.util.Printer} that sends its output
* to a {@link StringBuilder}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class StringBuilderPrinter implements Printer {
private final StringBuilder mBuilder;
diff --git a/core/java/android/util/UtilConfig.java b/core/java/android/util/UtilConfig.java
index 7658c408ae80..31d25357082f 100644
--- a/core/java/android/util/UtilConfig.java
+++ b/core/java/android/util/UtilConfig.java
@@ -21,6 +21,7 @@ package android.util;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class UtilConfig {
static boolean sThrowExceptionForUpperArrayOutOfBounds = true;
diff --git a/core/java/android/util/proto/EncodedBuffer.java b/core/java/android/util/proto/EncodedBuffer.java
index 2a8f405ffd7f..c05d40694821 100644
--- a/core/java/android/util/proto/EncodedBuffer.java
+++ b/core/java/android/util/proto/EncodedBuffer.java
@@ -34,6 +34,7 @@ import java.util.ArrayList;
* @hide
*/
@TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class EncodedBuffer {
private static final String TAG = "EncodedBuffer";
diff --git a/core/java/android/util/proto/ProtoInputStream.java b/core/java/android/util/proto/ProtoInputStream.java
index 9a15cd5dbfff..0719f01f3c88 100644
--- a/core/java/android/util/proto/ProtoInputStream.java
+++ b/core/java/android/util/proto/ProtoInputStream.java
@@ -65,6 +65,7 @@ import java.util.Objects;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ProtoInputStream extends ProtoStream {
public static final int NO_MORE_FIELDS = -1;
diff --git a/core/java/android/util/proto/ProtoOutputStream.java b/core/java/android/util/proto/ProtoOutputStream.java
index afca4ab2c741..3e0feabc0cc7 100644
--- a/core/java/android/util/proto/ProtoOutputStream.java
+++ b/core/java/android/util/proto/ProtoOutputStream.java
@@ -104,6 +104,7 @@ import java.io.UnsupportedEncodingException;
* correctly matched pairs of #start and #end calls, and issue
* errors if they are not matched.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class ProtoOutputStream extends ProtoStream {
/**
* @hide
diff --git a/core/java/android/util/proto/ProtoParseException.java b/core/java/android/util/proto/ProtoParseException.java
index 5ba9bf8ea518..0429f93739d1 100644
--- a/core/java/android/util/proto/ProtoParseException.java
+++ b/core/java/android/util/proto/ProtoParseException.java
@@ -24,6 +24,7 @@ import android.annotation.TestApi;
* @hide
*/
@TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ProtoParseException extends RuntimeException {
/**
diff --git a/core/java/android/util/proto/ProtoStream.java b/core/java/android/util/proto/ProtoStream.java
index 1940da907973..a24cf327e393 100644
--- a/core/java/android/util/proto/ProtoStream.java
+++ b/core/java/android/util/proto/ProtoStream.java
@@ -32,6 +32,7 @@ import java.lang.annotation.RetentionPolicy;
*
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ProtoStream {
/**
diff --git a/core/java/android/util/proto/ProtoUtils.java b/core/java/android/util/proto/ProtoUtils.java
index 2b44b42bb5fa..c7a3c4c71233 100644
--- a/core/java/android/util/proto/ProtoUtils.java
+++ b/core/java/android/util/proto/ProtoUtils.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
* //frameworks/base/core/proto/android/base directory
* @hide
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ProtoUtils {
/**
diff --git a/core/java/android/util/proto/WireTypeMismatchException.java b/core/java/android/util/proto/WireTypeMismatchException.java
index d90b4f8df8ae..b8afcd3ad9b3 100644
--- a/core/java/android/util/proto/WireTypeMismatchException.java
+++ b/core/java/android/util/proto/WireTypeMismatchException.java
@@ -24,6 +24,7 @@ import android.annotation.TestApi;
* @hide
*/
@TestApi
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class WireTypeMismatchException extends ProtoParseException {
/**
diff --git a/core/java/com/android/internal/util/FileRotator.java b/core/java/com/android/internal/util/FileRotator.java
index c9d9926ba75a..71a14a4480d5 100644
--- a/core/java/com/android/internal/util/FileRotator.java
+++ b/core/java/com/android/internal/util/FileRotator.java
@@ -53,6 +53,8 @@ import java.util.zip.ZipOutputStream;
*
* @hide
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class FileRotator {
private static final String TAG = "FileRotator";
private static final boolean LOGD = false;
diff --git a/core/java/com/android/internal/util/HexDump.java b/core/java/com/android/internal/util/HexDump.java
index 6468cafe85d4..cf0af373f9aa 100644
--- a/core/java/com/android/internal/util/HexDump.java
+++ b/core/java/com/android/internal/util/HexDump.java
@@ -19,6 +19,8 @@ package com.android.internal.util;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class HexDump
{
private final static char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
diff --git a/core/java/com/android/internal/util/IndentingPrintWriter.java b/core/java/com/android/internal/util/IndentingPrintWriter.java
index 520f5184260a..5e1af7ff5302 100644
--- a/core/java/com/android/internal/util/IndentingPrintWriter.java
+++ b/core/java/com/android/internal/util/IndentingPrintWriter.java
@@ -25,6 +25,8 @@ import java.io.Writer;
* @deprecated Use {@link android.util.IndentingPrintWriter}
*/
@Deprecated
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class IndentingPrintWriter extends android.util.IndentingPrintWriter {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
diff --git a/core/java/com/android/internal/util/LocalLog.java b/core/java/com/android/internal/util/LocalLog.java
index 057dc8fd477c..29a7e27ae3ff 100644
--- a/core/java/com/android/internal/util/LocalLog.java
+++ b/core/java/com/android/internal/util/LocalLog.java
@@ -28,6 +28,8 @@ import java.util.ArrayList;
* of a system service's dumpsys output.
* @hide
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class LocalLog {
private final String mTag;
private final int mMaxLines = 20;
diff --git a/core/java/com/android/internal/util/MessageUtils.java b/core/java/com/android/internal/util/MessageUtils.java
index e733c30ae84a..e88420834af2 100644
--- a/core/java/com/android/internal/util/MessageUtils.java
+++ b/core/java/com/android/internal/util/MessageUtils.java
@@ -26,6 +26,8 @@ import java.lang.reflect.Modifier;
/**
* Static utility class for dealing with {@link Message} objects.
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MessageUtils {
private static final String TAG = MessageUtils.class.getSimpleName();
diff --git a/core/java/com/android/internal/util/TokenBucket.java b/core/java/com/android/internal/util/TokenBucket.java
index a163ceb5f8f8..fcdbf1b40a1f 100644
--- a/core/java/com/android/internal/util/TokenBucket.java
+++ b/core/java/com/android/internal/util/TokenBucket.java
@@ -36,6 +36,8 @@ import static com.android.internal.util.Preconditions.checkArgumentPositive;
*
* {@hide}
*/
+// Exported to Mainline modules; cannot use annotations
+// @android.ravenwood.annotation.RavenwoodKeepWholeClass
public class TokenBucket {
private final int mFillDelta; // Time in ms it takes to generate one token.
diff --git a/core/java/com/android/internal/util/XmlPullParserWrapper.java b/core/java/com/android/internal/util/XmlPullParserWrapper.java
index efa17ef4d9cb..375ea5cd734f 100644
--- a/core/java/com/android/internal/util/XmlPullParserWrapper.java
+++ b/core/java/com/android/internal/util/XmlPullParserWrapper.java
@@ -29,6 +29,7 @@ import java.util.Objects;
/**
* Wrapper which delegates all calls through to the given {@link XmlPullParser}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class XmlPullParserWrapper implements XmlPullParser {
private final XmlPullParser mWrapped;
diff --git a/core/java/com/android/internal/util/XmlSerializerWrapper.java b/core/java/com/android/internal/util/XmlSerializerWrapper.java
index 9f28d90aae9c..f541e1f58a0f 100644
--- a/core/java/com/android/internal/util/XmlSerializerWrapper.java
+++ b/core/java/com/android/internal/util/XmlSerializerWrapper.java
@@ -28,6 +28,7 @@ import java.util.Objects;
/**
* Wrapper which delegates all calls through to the given {@link XmlSerializer}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class XmlSerializerWrapper implements XmlSerializer {
private final XmlSerializer mWrapped;
diff --git a/core/java/com/android/internal/util/XmlUtils.java b/core/java/com/android/internal/util/XmlUtils.java
index af5e3b328645..7e554cfae2ea 100644
--- a/core/java/com/android/internal/util/XmlUtils.java
+++ b/core/java/com/android/internal/util/XmlUtils.java
@@ -51,6 +51,7 @@ import java.util.Map;
import java.util.Set;
/** {@hide} */
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class XmlUtils {
private static final String STRING_ARRAY_SEPARATOR = ":";
diff --git a/ravenwood/framework-minus-apex-ravenwood-policies.txt b/ravenwood/framework-minus-apex-ravenwood-policies.txt
index 2eef0cdaf24b..49cef07033c1 100644
--- a/ravenwood/framework-minus-apex-ravenwood-policies.txt
+++ b/ravenwood/framework-minus-apex-ravenwood-policies.txt
@@ -9,124 +9,29 @@ class :feature_flags stubclass
# Keep all sysprops generated code implementations
class :sysprops stubclass
-# Collections
-class android.util.ArrayMap stubclass
-class android.util.ArraySet stubclass
-class android.util.LongSparseArray stubclass
-class android.util.SparseArrayMap stubclass
-class android.util.SparseArray stubclass
-class android.util.SparseBooleanArray stubclass
-class android.util.SparseIntArray stubclass
-class android.util.SparseLongArray stubclass
-class android.util.ContainerHelpers stubclass
-class android.util.EmptyArray stubclass
-class android.util.MapCollections stubclass
-
-# Logging
-class android.util.Log stubclass
-class android.util.Log !com.android.hoststubgen.nativesubstitution.Log_host
-class android.util.LogPrinter stubclass
-class android.util.LocalLog stubclass
-
-# String Manipulation
-class android.util.Printer stubclass
-class android.util.PrintStreamPrinter stubclass
-class android.util.PrintWriterPrinter stubclass
-class android.util.StringBuilderPrinter stubclass
-class android.util.IndentingPrintWriter stubclass
-
-# Properties
-class android.util.Property stubclass
-class android.util.FloatProperty stubclass
-class android.util.IntProperty stubclass
-class android.util.NoSuchPropertyException stubclass
-class android.util.ReflectiveProperty stubclass
-
-# Exceptions
-class android.util.AndroidException stubclass
-class android.util.AndroidRuntimeException stubclass
-
-# JSON
-class android.util.JsonReader stubclass
-class android.util.JsonWriter stubclass
-class android.util.MalformedJsonException stubclass
-
-# Base64
-class android.util.Base64 stubclass
-class android.util.Base64DataException stubclass
-class android.util.Base64InputStream stubclass
-class android.util.Base64OutputStream stubclass
-
-# Data Holders
-class android.util.MutableFloat stubclass
-class android.util.MutableShort stubclass
-class android.util.MutableBoolean stubclass
-class android.util.MutableByte stubclass
-class android.util.MutableChar stubclass
-class android.util.MutableDouble stubclass
-class android.util.Pair stubclass
-class android.util.Range stubclass
-class android.util.Rational stubclass
-class android.util.Size stubclass
-class android.util.SizeF stubclass
-
-# Proto
-class android.util.proto.EncodedBuffer stubclass
-class android.util.proto.ProtoInputStream stubclass
-class android.util.proto.ProtoOutputStream stubclass
-class android.util.proto.ProtoParseException stubclass
-class android.util.proto.ProtoStream stubclass
-class android.util.proto.ProtoUtils stubclass
-class android.util.proto.WireTypeMismatchException stubclass
-
-# Misc
-class android.util.BackupUtils stubclass
-class android.util.Dumpable stubclass
-class android.util.DebugUtils stubclass
-class android.util.MathUtils stubclass
-class android.util.Patterns stubclass
-class android.util.UtilConfig stubclass
-
-# Internals
-class com.android.internal.util.FileRotator stubclass
+# Exported to Mainline modules; cannot use annotations
class com.android.internal.util.FastXmlSerializer stubclass
+class com.android.internal.util.FileRotator stubclass
class com.android.internal.util.HexDump stubclass
+class com.android.internal.util.IndentingPrintWriter stubclass
+class com.android.internal.util.LocalLog stubclass
class com.android.internal.util.MessageUtils stubclass
-class com.android.internal.util.Preconditions stubclass
class com.android.internal.util.TokenBucket stubclass
-
-# Parcel
-class android.os.ParcelFormatException stubclass
-class android.os.BadParcelableException stubclass
-class android.os.BadTypeParcelableException stubclass
-
-# Binder
-class android.os.DeadObjectException stubclass
-class android.os.DeadSystemException stubclass
-class android.os.RemoteException stubclass
-class android.os.TransactionTooLargeException stubclass
-
-# Containers
-class android.os.BaseBundle stubclass
-class android.os.Bundle stubclass
-class android.os.PersistableBundle stubclass
-
-# Misc
class android.os.HandlerExecutor stubclass
-class android.os.PatternMatcher stubclass
-class android.os.ParcelUuid stubclass
+class android.util.BackupUtils stubclass
+class android.util.IndentingPrintWriter stubclass
+class android.util.LocalLog stubclass
+class android.util.Pair stubclass
+class android.util.Rational stubclass
-# Logging related interfaces from modules-utils
+# From modules-utils; cannot use annotations
+class com.android.internal.util.Preconditions stubclass
class com.android.internal.logging.InstanceId stubclass
class com.android.internal.logging.InstanceIdSequence stubclass
class com.android.internal.logging.UiEvent stubclass
class com.android.internal.logging.UiEventLogger stubclass
-# XML
-class com.android.internal.util.XmlPullParserWrapper stubclass
-class com.android.internal.util.XmlSerializerWrapper stubclass
-class com.android.internal.util.XmlUtils stubclass
-
+# From modules-utils; cannot use annotations
class com.android.modules.utils.BinaryXmlPullParser stubclass
class com.android.modules.utils.BinaryXmlSerializer stubclass
class com.android.modules.utils.FastDataInput stubclass
diff --git a/ravenwood/ravenwood-annotation-allowed-classes.txt b/ravenwood/ravenwood-annotation-allowed-classes.txt
index 927ddd71dd15..dfd0fe2c747b 100644
--- a/ravenwood/ravenwood-annotation-allowed-classes.txt
+++ b/ravenwood/ravenwood-annotation-allowed-classes.txt
@@ -22,29 +22,90 @@ com.android.internal.os.RuntimeInit
com.android.internal.power.EnergyConsumerStats
com.android.internal.power.ModemPowerProfile
+android.util.AndroidException
+android.util.AndroidRuntimeException
+android.util.ArrayMap
+android.util.ArraySet
android.util.AtomicFile
+android.util.BackupUtils
+android.util.Base64
+android.util.Base64DataException
+android.util.Base64InputStream
+android.util.Base64OutputStream
android.util.CloseGuard
+android.util.ContainerHelpers
android.util.DataUnit
android.util.DayOfMonthCursor
+android.util.DebugUtils
+android.util.Dumpable
android.util.DumpableContainer
+android.util.EmptyArray
android.util.EventLog
+android.util.FloatProperty
+android.util.IndentingPrintWriter
android.util.IntArray
+android.util.IntProperty
+android.util.JsonReader
+android.util.JsonWriter
android.util.KeyValueListParser
+android.util.LocalLog
+android.util.Log
+android.util.LogPrinter
android.util.LongArray
android.util.LongArrayQueue
+android.util.LongSparseArray
android.util.LongSparseLongArray
android.util.LruCache
+android.util.MalformedJsonException
+android.util.MapCollections
+android.util.MathUtils
android.util.MonthDisplayHelper
+android.util.MutableBoolean
+android.util.MutableByte
+android.util.MutableChar
+android.util.MutableDouble
+android.util.MutableFloat
+android.util.MutableShort
+android.util.NoSuchPropertyException
+android.util.Pair
+android.util.Patterns
+android.util.Printer
+android.util.PrintStreamPrinter
+android.util.PrintWriterPrinter
+android.util.Property
+android.util.Range
+android.util.Rational
android.util.RecurrenceRule
+android.util.ReflectiveProperty
android.util.RotationUtils
android.util.Singleton
+android.util.Size
+android.util.SizeF
android.util.Slog
+android.util.SparseArray
+android.util.SparseArrayMap
+android.util.SparseBooleanArray
android.util.SparseDoubleArray
+android.util.SparseIntArray
+android.util.SparseLongArray
android.util.SparseSetArray
+android.util.StringBuilderPrinter
android.util.TimeUtils
+android.util.UtilConfig
android.util.Xml
+android.util.proto.EncodedBuffer
+android.util.proto.ProtoInputStream
+android.util.proto.ProtoOutputStream
+android.util.proto.ProtoParseException
+android.util.proto.ProtoStream
+android.util.proto.ProtoUtils
+android.util.proto.WireTypeMismatchException
+
android.os.AggregateBatteryConsumer
+android.os.BadParcelableException
+android.os.BadTypeParcelableException
+android.os.BaseBundle
android.os.BatteryConsumer
android.os.BatteryStats
android.os.BatteryStats$HistoryItem
@@ -59,8 +120,11 @@ android.os.Binder$IdentitySupplier
android.os.BluetoothBatteryStats
android.os.Broadcaster
android.os.Build
+android.os.Bundle
android.os.BundleMerger
android.os.ConditionVariable
+android.os.DeadObjectException
+android.os.DeadSystemException
android.os.FileUtils
android.os.FileUtils$MemoryPipe
android.os.Handler
@@ -75,9 +139,14 @@ android.os.Parcel
android.os.ParcelFileDescriptor
android.os.ParcelFileDescriptor$AutoCloseInputStream
android.os.ParcelFileDescriptor$AutoCloseOutputStream
+android.os.ParcelFormatException
+android.os.ParcelUuid
android.os.Parcelable
+android.os.PatternMatcher
+android.os.PersistableBundle
android.os.PowerComponents
android.os.Process
+android.os.RemoteException
android.os.ServiceSpecificException
android.os.StrictMode
android.os.SystemClock
@@ -86,6 +155,7 @@ android.os.TestLooperManager
android.os.ThreadLocalWorkSource
android.os.TimestampedValue
android.os.Trace
+android.os.TransactionTooLargeException
android.os.UserBatteryConsumer
android.os.UserBatteryConsumer$Builder
android.os.UidBatteryConsumer
@@ -189,7 +259,9 @@ com.android.internal.util.FastPrintWriter
com.android.internal.util.FileRotator
com.android.internal.util.GrowingArrayUtils
com.android.internal.util.HeavyHitterSketch
+com.android.internal.util.HexDump
com.android.internal.util.LineBreakBufferedWriter
+com.android.internal.util.MessageUtils
com.android.internal.util.ObjectUtils
com.android.internal.util.Parcelling
com.android.internal.util.ParseUtils
@@ -197,6 +269,10 @@ com.android.internal.util.ProcFileReader
com.android.internal.util.QuickSelect
com.android.internal.util.RingBuffer
com.android.internal.util.StringPool
+com.android.internal.util.TokenBucket
+com.android.internal.util.XmlPullParserWrapper
+com.android.internal.util.XmlSerializerWrapper
+com.android.internal.util.XmlUtils
com.android.internal.os.BackgroundThread
com.android.internal.os.BinderCallHeavyHitterWatcher