summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dmitrii Ishcheikin <ishcheikin@google.com> 2024-06-26 17:10:21 +0000
committer Dmitrii Ishcheikin <ishcheikin@google.com> 2024-08-09 13:13:49 +0000
commitc6c500a217ed23a3de1f5641df57b95c10015f0a (patch)
treed36dcf04e311343da48d43a58edfe69d115fd844
parent948f4b70e6490a05467e5de592441f5040c05f8e (diff)
Add dirty-image-objects for ART module
Rename dirty-image-objects to dirty-image-objects.txt. Modify odrefresh to use new dirty-image-objects file names. Split dirty-image-objects file between ART and framework modules - depending on where the classes are defined. This will allow dirty-image-objects to stay relevant in case only one of the modules is updated. Bug: 346990440 Test: install ART module; check /apex/com.android.art/etc/dirty-image-objects.txt exists Test: m art-check-testing-apex-gen art-check-release-apex-gen Change-Id: Id19480b409a582cfe0b398b078808b462636d0f8
-rw-r--r--build/apex/Android.bp8
-rwxr-xr-xbuild/apex/art_apex_test.py1
-rw-r--r--build/apex/dirty-image-objects.txt652
-rw-r--r--odrefresh/odrefresh.cc16
-rw-r--r--odrefresh/odrefresh_test.cc4
5 files changed, 676 insertions, 5 deletions
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index f4d3d5a6c5..32d40c890f 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -178,6 +178,13 @@ prebuilt_etc {
installable: false,
}
+prebuilt_etc {
+ name: "dirty-image-objects-art",
+ src: "dirty-image-objects.txt",
+ filename: "dirty-image-objects.txt",
+ installable: false,
+}
+
// Default values shared by APEXes except test_broken_com.android.art.
apex_defaults {
name: "com.android.art-defaults-minus-odrefresh",
@@ -211,6 +218,7 @@ apex_defaults {
"art-linker-config",
"com.android.art.init.rc",
"current_sdkinfo",
+ "dirty-image-objects-art",
],
}
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index 68fe779a9e..38659eadb8 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -498,6 +498,7 @@ class ReleaseChecker:
self._checker.check_file('etc/init.rc')
self._checker.check_file('etc/linker.config.pb')
self._checker.check_file('etc/sdkinfo.pb')
+ self._checker.check_file('etc/dirty-image-objects.txt')
# Check flagging files that don't get added in builds on master-art.
# TODO(b/345713436): Make flags work on master-art.
diff --git a/build/apex/dirty-image-objects.txt b/build/apex/dirty-image-objects.txt
new file mode 100644
index 0000000000..c12df55116
--- /dev/null
+++ b/build/apex/dirty-image-objects.txt
@@ -0,0 +1,652 @@
+#
+# Copyright (C) 2024 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+# ART dirty-image-objects file for boot image.
+# The image writer will bin these objects together in the image.
+# There are two dirty-image-objects files:
+# 1) art/build/apex/dirty-image-objects.txt - contains classes and objects
+# referenced by classes defined in the ART module.
+# 2) frameworks/base/config/dirty-image-objects.txt - contains classes and
+# objects referenced by classes defined in framework modules.
+#
+# More info about dirty objects format and how to collect the data can be
+# found in: art/imgdiag/dirty_image_objects.md
+# This particular file was generated by running top 100 Android apps.
+#
+Ljava/io/Reader; 1
+Ljava/lang/reflect/AnnotatedElement; 1
+Ljava/lang/Readable; 1
+Ljava/io/ByteArrayInputStream; 1
+Ljava/security/MessageDigestSpi; 1
+Ljava/lang/reflect/Executable; 1
+Ljava/io/OutputStream; 1
+Ljava/io/InputStreamReader; 1
+Ljava/io/FileFilter; 1
+Ljava/util/Arrays; 1
+Ljava/security/cert/X509Extension; 1
+Ljava/lang/AbstractStringBuilder; 1
+Ljava/nio/charset/CharsetDecoder; 1
+Ljava/lang/reflect/Constructor; 1
+Ljava/lang/reflect/Field; 1
+Ljava/lang/reflect/Member; 1
+Ljava/io/FilterOutputStream; 1
+Ljava/io/DataOutputStream; 1
+Ljava/io/FileInputStream; 1
+Ljava/io/DataOutput; 1
+Ljavax/security/auth/x500/X500Principal; 1
+Ljava/lang/reflect/GenericDeclaration; 1
+Ljava/lang/Math; 1
+Ljava/io/Flushable; 1
+Ljava/security/Principal; 1
+Ljava/lang/reflect/AccessibleObject; 1
+Ljava/nio/IntBuffer; 1
+Ljava/security/cert/CertificateFactory; 1
+Ljava/lang/Process; 1
+Ljava/security/MessageDigest; 1
+Ljava/nio/Buffer; 2
+Ljava/io/BufferedReader; 3
+Ljava/lang/Runtime; 5
+Ljava/util/EnumSet; 6
+Ljava/nio/charset/spi/CharsetProvider; 10
+Llibcore/icu/SimpleDateFormatData;.CACHE:Ljava/util/concurrent/ConcurrentHashMap; 11
+Lorg/xmlpull/v1/XmlPullParserException; 20
+Ljava/time/DateTimeException; 22
+Ljava/io/FileReader; 22
+Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;.dsaOids:[Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;.0:Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier; 22
+Ljava/security/cert/CertificateException; 22
+Ljava/util/WeakHashMap;.NULL_KEY:Ljava/lang/Object; 23
+Ljava/io/ObjectStreamField; 24
+Ljava/net/SocketTimeoutException; 25
+Ljavax/net/ssl/SSLException; 26
+Ljava/util/NavigableSet; 27
+Ljava/lang/constant/ConstantDesc; 28
+Ljava/lang/constant/Constable; 29
+Ljava/util/NavigableMap; 30
+Ljava/util/RandomAccess; 31
+Ljava/net/InetSocketAddress; 32
+Ljava/util/concurrent/ConcurrentNavigableMap; 33
+Ljava/util/SortedMap; 34
+Ljava/util/SortedSet; 35
+Ljava/sql/Time; 36
+Ljava/sql/Date; 37
+Ljava/sql/Timestamp; 38
+Ljava/net/URL; 39
+Ljava/util/Currency; 40
+Ljava/util/Calendar; 41
+Ljava/util/regex/Pattern; 42
+Ljava/util/concurrent/atomic/AtomicBoolean; 43
+Ljava/util/concurrent/atomic/AtomicInteger; 44
+Ljava/util/concurrent/atomic/AtomicLong; 44
+Ljava/lang/StringBuffer; 45
+Ljava/lang/StringBuilder; 46
+Ljava/net/URI; 47
+Ljava/util/UUID; 48
+Ljava/math/BigDecimal; 49
+Ljava/util/LinkedHashMap; 50
+Ljava/util/SequencedMap; 51
+Ljava/util/ArrayList; 52
+Ljava/util/HashMap; 53
+Ljava/util/AbstractMap; 54
+Llibcore/reflect/AnnotationFactory;.cache:Ljava/util/Map; 76
+Llibcore/reflect/AnnotationFactory;.cache:Ljava/util/Map;.table:[Ljava/util/WeakHashMap$Entry; 76
+Ljava/lang/reflect/Proxy;.proxyClassCache:Ljava/lang/reflect/WeakCache;.map:Ljava/util/concurrent/ConcurrentMap; 77
+Ljava/lang/reflect/Proxy$ProxyClassFactory;.nextUniqueNumber:Ljava/util/concurrent/atomic/AtomicLong; 77
+Ljava/lang/reflect/Proxy;.proxyClassCache:Ljava/lang/reflect/WeakCache;.reverseMap:Ljava/util/concurrent/ConcurrentMap; 77
+Ljava/nio/charset/Charset;.cache2:Ljava/util/HashMap; 92
+Ljava/net/URL;.handlers:Ljava/util/Hashtable;.table:[Ljava/util/Hashtable$HashtableEntry; 93
+Ljava/net/URL;.handlers:Ljava/util/Hashtable; 93
+Lsun/security/x509/X500Name;.orgName_oid:Lsun/security/util/ObjectIdentifier; 94
+Lsun/security/x509/X500Name;.commonName_oid:Lsun/security/util/ObjectIdentifier; 94
+Lsun/security/x509/X500Name;.countryName_oid:Lsun/security/util/ObjectIdentifier; 94
+Ljava/net/Inet6AddressImpl;.addressCache:Ljava/net/AddressCache;.cache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap; 95
+Lsun/security/provider/X509Factory;.certCache:Lsun/security/util/Cache;.cacheMap:Ljava/util/Map; 96
+Lsun/security/x509/PKIXExtensions;.CertificatePolicies_Id:Lsun/security/util/ObjectIdentifier; 96
+Lcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar; 96
+Lsun/security/x509/PKIXExtensions;.PolicyConstraints_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.AuthorityKey_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.PolicyMappings_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.KeyUsage_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.ExtendedKeyUsage_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.NameConstraints_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/x509/PKIXExtensions;.BasicConstraints_Id:Lsun/security/util/ObjectIdentifier; 96
+Lsun/security/provider/X509Factory;.certCache:Lsun/security/util/Cache; 96
+Lsun/security/x509/PKIXExtensions;.InhibitAnyPolicy_Id:Lsun/security/util/ObjectIdentifier; 96
+Ljava/security/cert/PKIXRevocationChecker$Option;.NO_FALLBACK:Ljava/security/cert/PKIXRevocationChecker$Option; 97
+Ljava/security/cert/PKIXRevocationChecker$Option;.ONLY_END_ENTITY:Ljava/security/cert/PKIXRevocationChecker$Option; 97
+Ljavax/net/ssl/SSLSessionContext; 98
+Ljava/net/Proxy;.NO_PROXY:Ljava/net/Proxy;.type:Ljava/net/Proxy$Type; 99
+Ljavax/net/ssl/SSLSocketFactory; 100
+Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder; 100
+Ljava/net/ProxySelector;.theProxySelector:Ljava/net/ProxySelector; 100
+Ljava/lang/IllegalAccessException; 100
+Lcom/android/okhttp/internal/http/AuthenticatorAdapter;.INSTANCE:Lcom/android/okhttp/Authenticator; 101
+Lcom/android/okhttp/Protocol;.HTTP_1_1:Lcom/android/okhttp/Protocol; 101
+Lcom/android/okhttp/ConfigAwareConnectionPool;.instance:Lcom/android/okhttp/ConfigAwareConnectionPool;.networkEventDispatcher:Llibcore/net/event/NetworkEventDispatcher;.listeners:Ljava/util/List; 102
+Lcom/android/okhttp/Dns;.SYSTEM:Lcom/android/okhttp/Dns; 102
+Lcom/android/okhttp/ConfigAwareConnectionPool;.instance:Lcom/android/okhttp/ConfigAwareConnectionPool; 102
+Lcom/android/okhttp/okio/AsyncTimeout; 103
+Lcom/android/okhttp/okio/SegmentPool; 104
+Ljavax/net/SocketFactory; 105
+Ljava/security/Security;.spiMap:Ljava/util/Map; 106
+Lsun/nio/ch/FileChannelImpl$Unmapper; 107
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry; 108
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry; 108
+Lsun/nio/ch/SharedFileLockTable;.lockMap:Ljava/util/concurrent/ConcurrentHashMap; 109
+Ljava/lang/Integer;.SMALL_NONNEG_VALUES:[Ljava/lang/String; 110
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap; 111
+Ljava/nio/charset/Charset; 112
+Ljava/util/concurrent/Executors$DefaultThreadFactory;.poolNumber:Ljava/util/concurrent/atomic/AtomicInteger; 114
+Ljava/lang/Daemons$ReferenceQueueDaemon;.INSTANCE:Ljava/lang/Daemons$ReferenceQueueDaemon;.progressCounter:Ljava/util/concurrent/atomic/AtomicInteger; 116
+Ljava/lang/ref/FinalizerReference; 117
+Ljava/lang/Daemons; 117
+Ljava/lang/Daemons;.DAEMONS:[Ljava/lang/Daemons$Daemon;.2:Ljava/lang/Daemons$FinalizerDaemon;.progressCounter:Ljava/util/concurrent/atomic/AtomicInteger; 117
+Ljava/lang/Thread; 117
+Ldalvik/system/VMRuntime;.THE_ONE:Ldalvik/system/VMRuntime;.allocationCount:Ljava/util/concurrent/atomic/AtomicInteger; 117
+Ljava/lang/ThreadLocal;.nextHashCode:Ljava/util/concurrent/atomic/AtomicInteger; 118
+Ldalvik/system/ZygoteHooks; 118
+Lsun/misc/Cleaner; 118
+Ljava/lang/Daemons$ReferenceQueueDaemon;.INSTANCE:Ljava/lang/Daemons$ReferenceQueueDaemon; 118
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.systemContext:Ljava/util/logging/LogManager$LoggerContext;.namedLoggers:Ljava/util/Hashtable;.table:[Ljava/util/Hashtable$HashtableEntry; 118
+Ldalvik/system/VMRuntime;.THE_ONE:Ldalvik/system/VMRuntime; 118
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.userContext:Ljava/util/logging/LogManager$LoggerContext;.namedLoggers:Ljava/util/Hashtable; 118
+Ljava/security/Provider; 118
+Landroid/compat/Compatibility; 118
+Ldalvik/system/RuntimeHooks; 118
+Ldalvik/system/SocketTagger; 118
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.systemContext:Ljava/util/logging/LogManager$LoggerContext;.namedLoggers:Ljava/util/Hashtable; 118
+Ljava/util/Locale; 118
+Ljava/util/TimeZone; 118
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.systemContext:Ljava/util/logging/LogManager$LoggerContext;.root:Ljava/util/logging/LogManager$LogNode; 118
+Ljava/lang/ThreadGroup;.systemThreadGroup:Ljava/lang/ThreadGroup; 118
+Ljava/lang/ThreadGroup;.mainThreadGroup:Ljava/lang/ThreadGroup; 118
+Ljava/lang/Daemons;.DAEMONS:[Ljava/lang/Daemons$Daemon;.2:Ljava/lang/Daemons$FinalizerDaemon; 118
+Ljava/lang/System; 118
+Ljava/util/Random;.seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong; 118
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager; 118
+Ljava/lang/Daemons$HeapTaskDaemon;.INSTANCE:Ljava/lang/Daemons$HeapTaskDaemon; 118
+Ldalvik/system/CloseGuard; 118
+Landroid/system/StructTimeval; 122
+Landroid/system/StructPollfd; 122
+Landroid/system/UnixSocketAddress; 122
+Llibcore/net/NetworkSecurityPolicy; 123
+Lsun/security/jca/Providers; 123
+Llibcore/io/Libcore; 123
+Ldalvik/system/BaseDexClassLoader; 123
+Ljava/security/Security;.version:Ljava/util/concurrent/atomic/AtomicInteger; 123
+Ljava/util/Locale$NoImagePreloadHolder; 124
+Ljava/lang/Daemons$FinalizerWatchdogDaemon;.INSTANCE:Ljava/lang/Daemons$FinalizerWatchdogDaemon; 125
+Lsun/security/x509/X500Name;.orgUnitName_oid:Lsun/security/util/ObjectIdentifier; 152
+Lsun/security/x509/X500Name;.localityName_oid:Lsun/security/util/ObjectIdentifier; 153
+Lsun/security/x509/X500Name;.stateName_oid:Lsun/security/util/ObjectIdentifier; 154
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map; 155
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.13:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 156
+Ljava/security/cert/PKIXRevocationChecker$Option;.SOFT_FAIL:Ljava/security/cert/PKIXRevocationChecker$Option; 157
+Lsun/security/provider/certpath/CertId;.SHA1_ALGID:Lsun/security/x509/AlgorithmId;.algid:Lsun/security/util/ObjectIdentifier; 157
+Ljava/security/cert/PKIXRevocationChecker$Option;.PREFER_CRLS:Ljava/security/cert/PKIXRevocationChecker$Option; 157
+Lsun/security/x509/PKIXExtensions;.SubjectKey_Id:Lsun/security/util/ObjectIdentifier; 158
+Ljava/lang/Class$Caches;.genericInterfaces:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap; 159
+Ljava/util/SequencedCollection; 160
+Ljava/util/List; 161
+Ljava/lang/String; 162
+Ljava/lang/Integer;.SMALL_NEG_VALUES:[Ljava/lang/String; 165
+Ljava/util/zip/ZipFile$Source;.files:Ljava/util/HashMap; 166
+Ljdk/internal/ref/CleanerFactory;.commonCleaner:Ljava/lang/ref/Cleaner;.impl:Ljdk/internal/ref/CleanerImpl;.phantomCleanableList:Ljdk/internal/ref/PhantomCleanable; 167
+Ljavax/net/ssl/HttpsURLConnection; 168
+Ljavax/net/ssl/SSLContext; 168
+Ljava/lang/Object; 169
+Ljava/util/concurrent/ThreadLocalRandom; 170
+Ljava/lang/Number; 176
+Ljava/io/ObjectStreamClass$Caches;.reflectors:Ljava/util/concurrent/ConcurrentMap; 177
+Ljava/io/ObjectStreamClass$Caches;.localDescs:Ljava/util/concurrent/ConcurrentMap; 177
+Ljava/io/ObjectInputStream; 178
+Ljava/io/ObjectOutputStream; 178
+Ljava/lang/Throwable; 179
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.loggerRefQueue:Ljava/lang/ref/ReferenceQueue; 186
+Ldalvik/system/ZipPathValidator; 187
+Ljava/util/Date; 191
+Ljava/lang/Runtime;.currentRuntime:Ljava/lang/Runtime;.shutdownHooks:Ljava/util/List;.elementData:[Ljava/lang/Object; 192
+Ljava/lang/Runtime;.currentRuntime:Ljava/lang/Runtime;.shutdownHooks:Ljava/util/List; 192
+Ljava/util/Map; 193
+Ljava/util/Set; 194
+Ljava/lang/Enum; 195
+Ljava/lang/Comparable; 196
+Ljava/lang/Cloneable; 197
+Ljava/lang/Iterable; 198
+Ljava/util/Iterator; 199
+Ljava/util/ListIterator; 199
+Ljava/util/Collection; 200
+Ljava/lang/CharSequence; 201
+Ljava/lang/Class; 202
+Lsun/security/provider/X509Factory; 203
+Llibcore/icu/DecimalFormatData;.CACHE:Ljava/util/concurrent/ConcurrentHashMap; 204
+Ljava/util/Currency;.instances:Ljava/util/concurrent/ConcurrentMap; 207
+Ljava/text/DateFormatSymbols;.cachedInstances:Ljava/util/concurrent/ConcurrentMap; 208
+Ljava/text/SimpleDateFormat;.cachedNumberFormatData:Ljava/util/concurrent/ConcurrentMap; 209
+Ljava/util/Calendar;.cachedLocaleData:Ljava/util/concurrent/ConcurrentMap; 210
+Ljava/util/Observer; 212
+Ljava/util/concurrent/ConcurrentSkipListMap$Node; 213
+Lsun/util/logging/PlatformLogger$Level;.dexCache:Ljava/lang/Object; 214
+Ljava/lang/invoke/MethodType;.internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;.map:Ljava/util/concurrent/ConcurrentMap; 215
+Ljava/lang/Void; 216
+Ljava/util/Timer;.nextSerialNumber:Ljava/util/concurrent/atomic/AtomicInteger; 248
+Ljava/text/DontCareFieldPosition;.INSTANCE:Ljava/text/FieldPosition; 250
+Ljava/lang/reflect/Method; 252
+Ljava/nio/ByteBuffer; 260
+Ljava/io/InputStream; 261
+Ljava/nio/DirectByteBuffer; 263
+Ljava/nio/Bits; 264
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.228:Ljava/lang/Long; 271
+Ljava/lang/annotation/Annotation; 286
+Ljava/util/concurrent/ExecutorService; 287
+Ljava/util/concurrent/Executor; 288
+Ljava/util/concurrent/ScheduledExecutorService; 288
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 290
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.4:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 291
+Ljava/net/CookieHandler; 294
+Lorg/json/JSONException; 295
+Landroid/system/ErrnoException; 296
+Ljava/io/FileNotFoundException; 297
+Ljava/io/IOException; 298
+Ljava/lang/NullPointerException; 299
+[Ljava/lang/String; 300
+Lorg/json/JSONObject; 301
+Lorg/json/JSONArray; 302
+Ljava/util/Arrays$ArrayList; 303
+Ljava/util/Collections$SingletonMap; 304
+Ljava/io/FilterInputStream; 305
+Ljava/io/ByteArrayOutputStream; 306
+Ljava/io/DataInputStream; 306
+Ljava/lang/ThreadLocal; 311
+Lorg/json/JSONObject$1; 311
+Lsun/misc/Unsafe; 321
+Ljava/util/Queue; 322
+Ljava/util/concurrent/ConcurrentMap; 323
+Ljava/util/concurrent/ConcurrentHashMap; 324
+Ljava/lang/ref/WeakReference; 325
+[Ljava/lang/Throwable; 326
+Ljava/lang/Package; 327
+Ljava/lang/ref/Reference; 327
+Ljava/lang/ref/ReferenceQueue; 327
+Ljava/util/LinkedHashMap$LinkedValues; 331
+[Ljava/security/cert/Certificate; 331
+Ljava/security/PublicKey; 331
+Ljava/lang/ref/SoftReference; 333
+Ljdk/internal/math/FloatingDecimal;.B2AC_NEGATIVE_ZERO:Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;.buffer:[C 340
+Ljava/lang/UnsatisfiedLinkError; 344
+Ljava/net/Socket; 345
+Ljava/security/cert/Certificate; 346
+[Ljava/lang/Object; 350
+Ljava/text/SimpleDateFormat; 351
+Ljava/io/Closeable; 352
+Ljava/util/TreeMap; 353
+Ljava/security/Security;.props:Ljava/util/Properties;.map:Ljava/util/concurrent/ConcurrentHashMap; 354
+Ljava/security/Security;.props:Ljava/util/Properties;.map:Ljava/util/concurrent/ConcurrentHashMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.26:Ljava/util/concurrent/ConcurrentHashMap$Node; 354
+Ljava/util/concurrent/locks/AbstractOwnableSynchronizer; 357
+Ljava/util/concurrent/ConcurrentHashMap$Segment; 357
+Ljava/util/concurrent/locks/ReentrantLock$Sync; 357
+Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; 357
+Ljava/util/concurrent/locks/ReentrantLock; 357
+Ljava/util/concurrent/locks/AbstractQueuedSynchronizer; 357
+[Ljava/util/concurrent/ConcurrentHashMap$Segment; 357
+Ljava/lang/ThreadGroup;.mainThreadGroup:Ljava/lang/ThreadGroup;.name:Ljava/lang/String; 358
+Lsun/net/spi/DefaultProxySelector;.props:[[Ljava/lang/String;.1:[Ljava/lang/String;.0:Ljava/lang/String; 358
+Lsun/net/spi/DefaultProxySelector;.props:[[Ljava/lang/String;.0:[Ljava/lang/String;.0:Ljava/lang/String; 358
+Lcom/android/okhttp/Protocol;.HTTP_1_1:Lcom/android/okhttp/Protocol;.protocol:Ljava/lang/String; 358
+Ljava/util/concurrent/ThreadPoolExecutor$Worker; 358
+Ljava/text/NumberFormat$Field;.instanceMap:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.6:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 360
+Lsun/security/x509/CRLReasonCodeExtension;.REASON:Ljava/lang/String; 360
+Lcom/android/okhttp/HttpUrl;.PATH_SEGMENT_ENCODE_SET_URI:Ljava/lang/String; 360
+Ljava/net/UnknownServiceException; 362
+Lcom/android/okhttp/Address; 366
+Ljava/util/concurrent/CopyOnWriteArraySet; 369
+Ljava/util/concurrent/CopyOnWriteArrayList; 370
+Ljava/lang/UnsupportedOperationException; 374
+Lorg/apache/harmony/dalvik/ddmc/DdmServer;.mHandlerMap:Ljava/util/HashMap; 380
+Ldalvik/system/CloseGuard;.MESSAGE:Ljava/lang/String; 380
+Ljava/util/logging/Level$KnownLevel;.intToLevels:Ljava/util/Map; 382
+Ljava/util/logging/Level$KnownLevel;.intToLevels:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.12:Ljava/util/HashMap$Node;.next:Ljava/util/HashMap$Node; 382
+Ljava/util/logging/Level$KnownLevel;.nameToLevels:Ljava/util/Map; 382
+Ljava/util/logging/Level$KnownLevel;.nameToLevels:Ljava/util/Map;.table:[Ljava/util/HashMap$Node; 382
+Ljava/time/ZoneOffset;.ID_CACHE:Ljava/util/concurrent/ConcurrentMap; 395
+Ljava/time/ZoneOffset;.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 395
+Ljava/time/ZoneOffset;.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap; 395
+Ljava/time/ZoneOffset;.ID_CACHE:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 395
+Ljava/time/ZoneOffset;.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.0:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 395
+Ljava/io/File; 405
+Ljava/util/HashSet; 406
+Ljava/util/concurrent/TimeUnit;.MICROSECONDS:Ljava/util/concurrent/TimeUnit; 418
+Ljava/util/concurrent/TimeUnit;.MILLISECONDS:Ljava/util/concurrent/TimeUnit; 418
+Ljava/util/concurrent/TimeUnit;.NANOSECONDS:Ljava/util/concurrent/TimeUnit; 418
+Ljava/util/concurrent/TimeUnit;.SECONDS:Ljava/util/concurrent/TimeUnit; 418
+Ljava/util/concurrent/TimeUnit;.DAYS:Ljava/util/concurrent/TimeUnit; 418
+Ljava/util/concurrent/TimeUnit;.HOURS:Ljava/util/concurrent/TimeUnit; 418
+Ljava/util/concurrent/TimeUnit;.MINUTES:Ljava/util/concurrent/TimeUnit; 418
+Ljava/time/format/DateTimeTextProvider;.CACHE:Ljava/util/concurrent/ConcurrentMap; 420
+Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;.cache:Ljava/util/Map; 420
+Ljava/time/format/TextStyle;.SHORT:Ljava/time/format/TextStyle; 420
+Ljava/time/format/TextStyle;.SHORT_STANDALONE:Ljava/time/format/TextStyle; 420
+Ljava/time/format/TextStyle;.NARROW_STANDALONE:Ljava/time/format/TextStyle; 420
+Ljava/time/format/TextStyle;.FULL_STANDALONE:Ljava/time/format/TextStyle; 420
+Ljava/time/format/TextStyle;.NARROW:Ljava/time/format/TextStyle; 420
+Ljava/lang/IllegalAccessError; 421
+Ljava/lang/InternalError; 422
+Ljava/lang/LinkageError; 422
+Ljava/lang/StackOverflowError; 422
+Ljava/util/Hashtable; 422
+Ljava/lang/IllegalThreadStateException; 422
+Ljava/lang/NoSuchFieldError; 422
+Ljava/util/WeakHashMap; 422
+Ljava/lang/VerifyError; 422
+Ljava/lang/StringIndexOutOfBoundsException; 422
+Ljava/util/zip/ZipException; 422
+Ljava/net/Inet6Address; 422
+Ljava/util/concurrent/atomic/AtomicLongArray; 422
+Ljava/lang/InstantiationException; 422
+Ljava/lang/IllegalMonitorStateException; 422
+Ljava/lang/TypeNotPresentException; 422
+Ljava/lang/Appendable; 422
+Ljava/lang/OutOfMemoryError; 422
+Ljava/util/concurrent/atomic/AtomicIntegerArray; 422
+Ljava/lang/NegativeArraySizeException; 422
+Ljava/lang/AutoCloseable; 422
+Ljava/util/BitSet; 422
+Ljava/util/TreeSet; 422
+Ljava/lang/InstantiationError; 422
+[Ljava/lang/Character; 427
+[Ljava/lang/Byte; 427
+[Ljava/lang/Short; 427
+[Ljava/lang/Long; 427
+Ljavax/xml/datatype/Duration; 429
+Ljava/util/logging/Filter; 430
+Ljava/net/ResponseCache; 431
+Ljava/util/Comparator; 432
+Ljava/io/FileOutputStream; 433
+Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl; 433
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.7:Ljava/util/concurrent/ConcurrentHashMap$Node; 433
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.188:Ljava/lang/Long; 433
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.148:Ljava/lang/Long; 433
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.149:Ljava/lang/Long; 434
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.180:Ljava/lang/Long; 435
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.191:Ljava/lang/Long; 436
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.187:Ljava/lang/Long; 437
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.157:Ljava/lang/Long; 438
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.146:Ljava/lang/Long; 439
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.189:Ljava/lang/Long; 440
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.178:Ljava/lang/Long; 441
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.155:Ljava/lang/Long; 442
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.156:Ljava/lang/Long; 443
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.186:Ljava/lang/Long; 444
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.182:Ljava/lang/Long; 445
+Lorg/xmlpull/v1/XmlPullParser; 450
+Ljava/util/LinkedHashSet; 451
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache; 452
+Ljava/util/ConcurrentModificationException; 453
+Ljava/lang/ArrayIndexOutOfBoundsException; 454
+Ljava/lang/RuntimeException; 455
+Ljava/lang/StackTraceElement; 456
+[Ljava/lang/StackTraceElement; 457
+Ljava/util/Collections$EmptyList; 458
+Ldalvik/system/BlockGuard; 461
+Ljava/util/concurrent/ConcurrentLinkedDeque$Node; 465
+Ljava/util/concurrent/CountedCompleter; 466
+Ljava/util/concurrent/ForkJoinTask$Aux; 466
+Ljava/lang/Runnable; 469
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.147:Ljava/lang/Long; 482
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.177:Ljava/lang/Long; 483
+Ljava/util/concurrent/ConcurrentLinkedQueue$Node; 484
+Ljava/util/concurrent/ConcurrentLinkedQueue; 485
+Ljava/nio/file/StandardOpenOption;.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption; 495
+Ljava/nio/file/StandardOpenOption;.CREATE:Ljava/nio/file/StandardOpenOption; 496
+Ljava/nio/file/StandardOpenOption;.WRITE:Ljava/nio/file/StandardOpenOption; 497
+Ljava/nio/file/StandardOpenOption;.APPEND:Ljava/nio/file/StandardOpenOption; 498
+Ljava/nio/file/StandardOpenOption;.CREATE_NEW:Ljava/nio/file/StandardOpenOption; 499
+Ljavax/net/ServerSocketFactory; 499
+Lsun/nio/ch/SharedFileLockTable;.queue:Ljava/lang/ref/ReferenceQueue; 499
+Ljava/util/logging/FileHandler;.locks:Ljava/util/Set;.map:Ljava/util/HashMap; 499
+Ljava/util/logging/FileHandler; 499
+Ljava/security/Security;.props:Ljava/util/Properties;.map:Ljava/util/concurrent/ConcurrentHashMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.30:Ljava/util/concurrent/ConcurrentHashMap$Node; 500
+Ljava/security/Security;.props:Ljava/util/Properties;.map:Ljava/util/concurrent/ConcurrentHashMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.12:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 500
+Ljavax/net/ssl/SSLServerSocketFactory; 501
+Ljava/lang/annotation/Documented; 502
+Ljava/lang/annotation/Target; 502
+Ljava/lang/annotation/Retention; 502
+Ljava/lang/Deprecated; 503
+Ljava/net/InetAddress; 506
+Ljava/util/AbstractSet; 509
+Ljava/util/AbstractCollection; 510
+Ljava/util/AbstractList; 511
+Ljava/io/Serializable; 512
+Ljava/math/BigInteger; 513
+Lsun/util/locale/BaseLocale$Cache;.CACHE:Lsun/util/locale/BaseLocale$Cache;.map:Ljava/util/concurrent/ConcurrentMap; 515
+Ljava/lang/ClassNotFoundException; 517
+Ljava/security/interfaces/RSAPrivateKey; 518
+Ljava/security/interfaces/RSAPrivateCrtKey; 519
+Ljava/lang/Runtime;.currentRuntime:Ljava/lang/Runtime; 520
+Ljava/util/Collections; 533
+Ljava/util/concurrent/TimeoutException; 534
+Ljava/io/FileDescriptor; 536
+Ljava/util/concurrent/CancellationException; 543
+Ljava/lang/Character$UnicodeBlock;.CJK_UNIFIED_IDEOGRAPHS:Ljava/lang/Character$UnicodeBlock; 546
+Ljava/lang/Character$UnicodeBlock;.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A:Ljava/lang/Character$UnicodeBlock; 546
+Ljava/lang/Character$UnicodeBlock;.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B:Ljava/lang/Character$UnicodeBlock; 546
+Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT:Ljava/lang/Character$UnicodeBlock; 546
+Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY_IDEOGRAPHS:Ljava/lang/Character$UnicodeBlock; 546
+Ljava/lang/Character$UnicodeBlock;.HANGUL_JAMO:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.HIRAGANA:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.BOPOMOFO_EXTENDED:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.KATAKANA_PHONETIC_EXTENSIONS:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.KATAKANA:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.KANBUN:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.HANGUL_COMPATIBILITY_JAMO:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.ENCLOSED_CJK_LETTERS_AND_MONTHS:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.HANGUL_SYLLABLES:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.KANGXI_RADICALS:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.CJK_SYMBOLS_AND_PUNCTUATION:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.CJK_RADICALS_SUPPLEMENT:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY_FORMS:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.BOPOMOFO:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/lang/Character$UnicodeBlock;.HALFWIDTH_AND_FULLWIDTH_FORMS:Ljava/lang/Character$UnicodeBlock; 547
+Ljava/util/Locale;.TAIWAN:Ljava/util/Locale; 549
+Ljava/util/Locale;.CHINA:Ljava/util/Locale; 550
+Ljava/lang/NoClassDefFoundError; 551
+Ljava/lang/IndexOutOfBoundsException; 552
+Ljava/nio/HeapByteBuffer; 553
+Lcom/android/okhttp/Protocol; 553
+Lsun/util/calendar/CalendarSystem;.calendars:Ljava/util/concurrent/ConcurrentMap; 556
+[Ljava/lang/Class; 559
+Ljava/security/cert/X509Certificate; 561
+[Ljava/security/cert/X509Certificate; 562
+Ljavax/net/ssl/SSLEngine; 563
+Lcom/android/okhttp/OkHttpClient; 564
+Lcom/android/okhttp/Protocol;.HTTP_2:Lcom/android/okhttp/Protocol; 564
+Lcom/android/okhttp/Protocol;.SPDY_3:Lcom/android/okhttp/Protocol; 565
+Ljava/util/LinkedList; 566
+Ljava/util/Locale;.JAPAN:Ljava/util/Locale; 572
+Ljava/util/Locale;.GERMANY:Ljava/util/Locale; 573
+Ljava/util/Locale;.ITALY:Ljava/util/Locale; 574
+Ljava/util/Locale;.CANADA_FRENCH:Ljava/util/Locale; 575
+Ljava/util/Locale;.FRANCE:Ljava/util/Locale; 575
+Ljava/util/Locale;.CANADA:Ljava/util/Locale; 576
+Ljava/util/Locale;.KOREA:Ljava/util/Locale; 577
+Ljava/util/Locale;.JAPANESE:Ljava/util/Locale; 578
+Ljava/util/Locale;.KOREAN:Ljava/util/Locale; 578
+Ljava/util/Locale;.FRENCH:Ljava/util/Locale; 579
+Ljava/util/Locale;.ITALIAN:Ljava/util/Locale; 579
+Llibcore/icu/ICU; 579
+Ljava/util/Locale;.GERMAN:Ljava/util/Locale; 580
+Lsun/util/locale/BaseLocale$Cache;.CACHE:Lsun/util/locale/BaseLocale$Cache;.map:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.22:Ljava/util/concurrent/ConcurrentHashMap$Node;.val:Ljava/lang/Object;.referent:Ljava/lang/Object; 581
+Lsun/util/locale/BaseLocale$Cache;.CACHE:Lsun/util/locale/BaseLocale$Cache;.map:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.29:Ljava/util/concurrent/ConcurrentHashMap$Node;.val:Ljava/lang/Object;.referent:Ljava/lang/Object; 581
+Ljava/util/Locale;.CHINESE:Ljava/util/Locale; 582
+Ljava/util/Locale$Cache;.LOCALECACHE:Ljava/util/Locale$Cache;.map:Ljava/util/concurrent/ConcurrentMap; 583
+Ljava/util/Locale;.UK:Ljava/util/Locale; 584
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$Entry; 586
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry; 587
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry; 588
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.head:Ljava/util/LinkedHashMap$Entry; 588
+Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$Entry;.before:Ljava/util/LinkedHashMap$Entry; 589
+Lsun/security/x509/X500Name;.internedOIDs:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.29:Ljava/util/HashMap$Node;.next:Ljava/util/HashMap$Node; 591
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.158:Ljava/lang/Long; 593
+Ljava/time/Duration; 593
+Ljava/time/Instant; 593
+Ljava/util/Map$Entry; 594
+Ljava/lang/Character$UnicodeBlock;.CYRILLIC:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.CYRILLIC_EXTENDED_A:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.ARABIC_SUPPLEMENT:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.ARABIC_PRESENTATION_FORMS_A:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.ARABIC:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.DEVANAGARI_EXTENDED:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.ARABIC_PRESENTATION_FORMS_B:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.CYRILLIC_SUPPLEMENTARY:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.CYRILLIC_EXTENDED_B:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.THAI:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.DEVANAGARI:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.BENGALI:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.BASIC_LATIN:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.LATIN_1_SUPPLEMENT:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.LATIN_EXTENDED_A:Ljava/lang/Character$UnicodeBlock; 595
+Ljava/lang/Character$UnicodeBlock;.LATIN_EXTENDED_B:Ljava/lang/Character$UnicodeBlock; 595
+Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter; 608
+Ljava/net/Inet4Address; 609
+Ljava/lang/InterruptedException; 610
+Ljava/lang/AbstractMethodError; 611
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.190:Ljava/lang/Long; 612
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.154:Ljava/lang/Long; 613
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.181:Ljava/lang/Long; 614
+Ljava/util/concurrent/atomic/AtomicReference; 615
+Ljava/util/NoSuchElementException; 617
+Ljava/io/EOFException; 618
+Ljavax/net/ssl/SSLPeerUnverifiedException; 620
+Ljava/net/ProtocolException; 620
+Ljavax/net/ssl/SSLProtocolException; 620
+Ljava/net/MalformedURLException; 621
+Ljava/util/Collections$SynchronizedSet; 629
+Ljava/util/Collections$SynchronizedCollection; 630
+Ljava/util/Collections$EmptyMap; 634
+Ljava/net/ProxySelector; 635
+Ljava/util/concurrent/Future; 636
+Ljava/lang/reflect/Modifier; 636
+Ljava/lang/ProcessBuilder; 636
+Ljava/text/DecimalFormat; 639
+[Ljava/io/File; 639
+Ljava/lang/ThreadDeath; 639
+Ljava/util/HashMap$Values; 639
+Ljava/security/interfaces/DSAKey; 645
+Ljava/security/interfaces/DSAPublicKey; 645
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.5:Ljava/util/concurrent/ConcurrentHashMap$Node; 646
+Ljava/security/KeyStoreException; 650
+Ljava/util/concurrent/PriorityBlockingQueue; 650
+Ljava/util/concurrent/BlockingQueue; 650
+Ljava/security/InvalidAlgorithmParameterException; 650
+Ljavax/net/ssl/SSLHandshakeException; 651
+Ljava/net/UnknownHostException; 652
+Ljava/net/Inet6AddressImpl; 653
+Ljava/util/concurrent/ForkJoinPool; 654
+Ljava/util/concurrent/ForkJoinPool$WorkQueue; 655
+[Ljava/util/concurrent/ForkJoinTask; 655
+Ljava/util/concurrent/ForkJoinTask; 656
+Ljava/util/concurrent/CompletableFuture; 657
+Ljava/nio/channels/spi/SelectorProvider; 658
+Lsun/nio/ch/Net; 658
+Lsun/nio/ch/Util; 658
+Ljava/util/Observable; 659
+Ljava/net/StandardProtocolFamily;.INET:Ljava/net/StandardProtocolFamily; 660
+Ljava/net/HttpURLConnection; 660
+Ljava/net/StandardSocketOptions;.SO_BROADCAST:Ljava/net/SocketOption; 660
+Ljava/net/StandardProtocolFamily;.INET6:Ljava/net/StandardProtocolFamily; 660
+Ljava/lang/invoke/MethodType;.internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;.stale:Ljava/lang/ref/ReferenceQueue; 662
+Ldalvik/system/VMRuntime; 663
+Ljava/lang/IllegalArgumentException; 669
+Ljava/lang/IllegalStateException; 670
+Ljava/lang/invoke/MethodType;.objectOnlyTypes:[Ljava/lang/invoke/MethodType; 671
+Ljava/lang/ClassLoader; 673
+Ljava/util/Collections$SingletonList; 674
+Lsun/security/x509/X500Name;.SERIALNUMBER_OID:Lsun/security/util/ObjectIdentifier; 675
+Lsun/security/x509/X500Name;.internedOIDs:Ljava/util/Map;.table:[Ljava/util/HashMap$Node; 676
+Lsun/security/x509/X500Name;.internedOIDs:Ljava/util/Map; 676
+Ljava/lang/reflect/Type; 679
+[Ljava/lang/Integer; 680
+Ljava/net/ConnectException; 686
+Ljava/util/Deque; 687
+Ljava/util/ArrayDeque; 688
+Ljava/lang/ClassCastException; 690
+Ljava/util/Random; 692
+Ljava/util/IdentityHashMap;.NULL_KEY:Ljava/lang/Object; 696
+Ljava/lang/SecurityException; 699
+Ljava/util/concurrent/ExecutionException; 700
+Ljava/lang/StackStreamFactory; 705
+Ljava/util/logging/LogRecord;.globalSequenceNumber:Ljava/util/concurrent/atomic/AtomicLong; 713
+Lsun/security/x509/PKIXExtensions;.OCSPNoCheck_Id:Lsun/security/util/ObjectIdentifier; 714
+Ljava/util/Collections$SynchronizedMap; 720
+Ljava/lang/Float; 725
+Ljava/lang/Integer; 725
+Ljava/lang/Exception; 734
+Ljava/net/URLConnection; 735
+Ljava/net/SocketException; 743
+Ljava/util/Scanner; 744
+Ljava/util/Collections$UnmodifiableRandomAccessList; 748
+Ljava/util/Collections$UnmodifiableMap; 749
+Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.8:Ljava/util/concurrent/ConcurrentHashMap$Node; 750
+Ljava/lang/ClassValue;.nextHashCode:Ljava/util/concurrent/atomic/AtomicInteger; 750
+Ljava/lang/NumberFormatException; 754
+Ljava/lang/NoSuchMethodException; 755
+Ljava/lang/BootClassLoader; 765
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.150:Ljava/lang/Long; 766
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.152:Ljava/lang/Long; 766
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.183:Ljava/lang/Long; 767
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.208:Ljava/lang/Long; 769
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.153:Ljava/lang/Long; 769
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.179:Ljava/lang/Long; 769
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.185:Ljava/lang/Long; 769
+[Ljava/lang/Double; 771
+Ljava/lang/reflect/InvocationTargetException; 775
+Ljava/util/concurrent/TimeUnit; 777
+Ljava/lang/NoSuchFieldException; 778
+Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider; 787
+Ljavax/crypto/IllegalBlockSizeException; 788
+Ljava/util/SimpleTimeZone; 790
+Ljava/io/InterruptedIOException; 791
+Ljava/nio/file/NoSuchFileException; 795
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.134:Ljava/lang/Long; 800
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.126:Ljava/lang/Long; 800
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.184:Ljava/lang/Long; 801
+[Ljava/lang/Enum; 814
+Ljava/util/EnumSet$SerializationProxy; 814
+Ljava/util/RegularEnumSet; 814
+Ljava/nio/file/StandardOpenOption; 815
+Ljava/net/HttpCookie; 821
+Ljava/time/DayOfWeek;.MONDAY:Ljava/time/DayOfWeek; 822
+Ljava/time/DayOfWeek;.SATURDAY:Ljava/time/DayOfWeek; 822
+Ljava/time/DayOfWeek;.FRIDAY:Ljava/time/DayOfWeek; 822
+Ljava/time/DayOfWeek;.SUNDAY:Ljava/time/DayOfWeek; 822
+Ljava/time/DayOfWeek;.TUESDAY:Ljava/time/DayOfWeek; 822
+Ljava/time/DayOfWeek;.THURSDAY:Ljava/time/DayOfWeek; 822
+Ljava/time/DayOfWeek;.WEDNESDAY:Ljava/time/DayOfWeek; 822
+Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.128:Ljava/lang/Byte; 824
+Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.129:Ljava/lang/Byte; 824
+Landroid/system/StructLinger; 825
+Lsun/util/logging/PlatformLogger; 827
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.145:Ljava/lang/Long; 828
+Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.176:Ljava/lang/Long; 829
+Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.userContext:Ljava/util/logging/LogManager$LoggerContext; 829
+Ljava/util/concurrent/CompletableFuture$Completion; 829
+Ljava/nio/channels/ClosedByInterruptException; 829
+Ljava/lang/Class$Caches;.genericInterfaces:Llibcore/util/BasicLruCache; 830
+Ljava/lang/NoSuchMethodError; 831
+Ljava/util/Collections$SynchronizedRandomAccessList; 833
+Ljava/util/Collections$SynchronizedList; 833
diff --git a/odrefresh/odrefresh.cc b/odrefresh/odrefresh.cc
index db0c808375..731c4b8231 100644
--- a/odrefresh/odrefresh.cc
+++ b/odrefresh/odrefresh.cc
@@ -1872,14 +1872,24 @@ OnDeviceRefresh::RunDex2oatForBootClasspath(const std::string& staging_dir,
args.Add(StringPrintf("--base=0x%08x", ART_BASE_ADDRESS));
- for (const std::string& prefix : {GetAndroidRoot(), GetArtRoot()}) {
- std::string dirty_image_objects_file = prefix + "/etc/dirty-image-objects";
+ std::string dirty_image_objects_files[] = {
+ // Currently, there are two dirty-image-objects files: one for ART module,
+ // one for framework.
+ GetAndroidRoot() + "/etc/dirty-image-objects.txt",
+ GetArtRoot() + "/etc/dirty-image-objects.txt",
+ // Allow old filename (without .txt) for backward compatibility.
+ GetAndroidRoot() + "/etc/dirty-image-objects",
+ };
+ for (const std::string& dirty_image_objects_file : dirty_image_objects_files) {
std::unique_ptr<File> file(OS::OpenFileForReading(dirty_image_objects_file.c_str()));
if (file != nullptr) {
args.Add("--dirty-image-objects-fd=%d", file->Fd());
readonly_files_raii.push_back(std::move(file));
} else if (errno == ENOENT) {
- LOG(WARNING) << ART_FORMAT("Missing dirty objects file '{}'", dirty_image_objects_file);
+ // Don't report the warning for old filename.
+ if (dirty_image_objects_file.ends_with(".txt")) {
+ LOG(WARNING) << ART_FORMAT("Missing dirty objects file '{}'", dirty_image_objects_file);
+ }
} else {
return CompilationResult::Error(OdrMetrics::Status::kIoError,
ART_FORMAT("Failed to open dirty objects file '{}': {}",
diff --git a/odrefresh/odrefresh_test.cc b/odrefresh/odrefresh_test.cc
index f44c3211c3..0e42392a91 100644
--- a/odrefresh/odrefresh_test.cc
+++ b/odrefresh/odrefresh_test.cc
@@ -173,7 +173,7 @@ class OdRefreshTest : public CommonArtTest {
ASSERT_TRUE(EnsureDirectoryExists(system_etc_dir));
framework_profile_ = system_etc_dir + "/boot-image.prof";
CreateEmptyFile(framework_profile_);
- dirty_image_objects_file_ = system_etc_dir + "/dirty-image-objects";
+ dirty_image_objects_file_ = system_etc_dir + "/dirty-image-objects.txt";
CreateEmptyFile(dirty_image_objects_file_);
preloaded_classes_file_ = system_etc_dir + "/preloaded-classes";
CreateEmptyFile(preloaded_classes_file_);
@@ -1036,7 +1036,7 @@ TEST_F(OdRefreshTest, DirtyImageObjects) {
}
TEST_F(OdRefreshTest, DirtyImageObjectsMultipleFiles) {
- std::string art_dirty_image_objects = art_etc_dir_ + "/dirty-image-objects";
+ std::string art_dirty_image_objects = art_etc_dir_ + "/dirty-image-objects.txt";
auto file = ScopedCreateEmptyFile(art_dirty_image_objects);
// Primary.