diff options
author | 2024-06-26 17:10:21 +0000 | |
---|---|---|
committer | 2024-08-09 13:13:49 +0000 | |
commit | c6c500a217ed23a3de1f5641df57b95c10015f0a (patch) | |
tree | d36dcf04e311343da48d43a58edfe69d115fd844 | |
parent | 948f4b70e6490a05467e5de592441f5040c05f8e (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.bp | 8 | ||||
-rwxr-xr-x | build/apex/art_apex_test.py | 1 | ||||
-rw-r--r-- | build/apex/dirty-image-objects.txt | 652 | ||||
-rw-r--r-- | odrefresh/odrefresh.cc | 16 | ||||
-rw-r--r-- | odrefresh/odrefresh_test.cc | 4 |
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. |