summaryrefslogtreecommitdiff
path: root/runtime/oat_file_manager.cc
Commit message (Collapse)AuthorAgeFilesLines
* runtime: add -Xdeny-art-apex-data-filesOrion Hodson2021-07-021-2/+11
| | | | | | | | | | | | | | This option prevents the runtime from loading AOT artifacts installed in /data/misc/apexdata/com.android.art. (cherry picked from commit 971068dcaf5955634679dbfaf7b562ed52aff772) Bug: 192049377 Test: manually adding option and running odsign_e2e_tests Test: adding option and looking at proc/maps for system_server and zygote Merged-In: I56c7ce55b64de72faf39a06238089fe4b6b84b88 Change-Id: Iacce98009c51b936149435cfb70a3f744a122031
* Fix compiler filter / reason reporting and add the ISA to the metricsCalin Juravle2021-07-011-20/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler filter / reason reporting was not accurate for a variety of reasons. (e.g. reporting was only done at startup, it was relying on imprecise APIs and had errors in the logic). In order to keep track of the precise optimization status, this CL introduces the concept of AppInfo, which encapsulates the data about the application / system server code paths, their optimization status and possible other metadata (e.g. profiles). To populate it, we rely on 2 distinct events: 1) The framework calling VMRuntime#registerAppInfo to inform the runtime about the applications code paths and their types (e.g. primary, split, secondary). 2) Class loading, when we can determine the actual optimization status like filters, reasons, and whether or not we can load the odex files. These events may happen in any order so we could deal with a partial state at some point in time, but in the majority of cases they always happen at Class Loading, followed by RegisterAppInfo. This CL also deletes the OatFileManager#getPrimaryOatFile which was a misleading API as it didn't work in most cases. It also adds more tests to the metrics/reporting infra for previous missing or unimplemented cases. Test: gtest Bug: 170149255 Merged-In: If0a7a25d06ff6fb89fe4861139b7dee61c05814d Change-Id: If0a7a25d06ff6fb89fe4861139b7dee61c05814d (cherry picked from commit c2753e6beec483b5b14161b6bbc8e0a86aef9397)
* odrefresh: enable loading of system_server image filesOrion Hodson2021-06-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | Fix check in ValidateBootImageChecksum() to account for image files with multiple components which exists for boot-framework when compiling on device. Update logic for only_load_system_executable to be only_load_trusted_executable and treat /system and the ART APEX data directory as trusted. Add test to check .art,.odex,.vdex files derived from the system_server classpath are mapped when the ART module updates. Add test to check .art,.oat,.vdex files for the boot class path extensions are present in the zygote processes. (cherry picked from commit 094b1cfc9fa9e1c02238a2352c190be1746f5622) Fix: 180949581 Test: atest com.android.tests.odsign.OnDeviceSigningHostTest#verifyGeneratedArtifactsLoaded Merged-In: I3114fc6393402d8da2eb16ba756ab5fab713dc20 Change-Id: I493b2eaa99d27a865ced77745debdeaff16b7d6a
* Remove palette hooks.Nicolas Geoffray2021-06-091-4/+1
| | | | | | | | | | | Make the method be part of the official palette API. Bug: 186016399 Bug: 185778652 Test: m Change-Id: I3dc9e879c647fd63f5826091813613fd97e25c0d Merged-In: I3dc9e879c647fd63f5826091813613fd97e25c0d (cherry picked from commit 0ebaa9865b0d04f1b7b0ef13b5ed7e271b0ab588)
* Use odex_location instead of oat_file->GetLocation.Nicolas Geoffray2021-05-191-1/+1
| | | | | | | | | | | oat_file might be null at this point. Test: m Bug: 177175508 Bug: 183824895 Change-Id: I945b8a3053ff2ea1967758a621b7e88c3de1f222 Merged-In: I945b8a3053ff2ea1967758a621b7e88c3de1f222 (cherry picked from commit c07e873ddb17620c18420cf2bfcf76b1978dc291)
* Handle potential race in oat file loading.Nicolas Geoffray2021-05-051-9/+19
| | | | | | | | | It could be that the oat file we're trying to load non-executable is not there anymore. Test: test.py Bug: 177175508 Change-Id: Ic7240d09604d1d967a575c72244f28f36c8ad3b5
* Revert "Revert "Integrate ClassLoaderContext check in ↵Nicolas Geoffray2021-04-191-91/+41
| | | | | | | | | | | | OatFileAssistant::GetBestOatFile."" This reverts commit 656fdcd7f2aa9920ecd464dbb59d284e17969baa. Bug: 176960283 Reason for revert: Racy code fixed in https://android-review.googlesource.com/c/platform/art/+/1678727 Change-Id: I7561aa8fad060bd076006dd4b1fbffc076834635
* Fix race in GetPrimaryOatFile.Nicolas Geoffray2021-04-191-3/+9
| | | | | | | | | | | | | | GetPrimaryOatFile is broken and racy: - Broken as it returns the first entry of a set, which isn't guaranteed to be the primary oat file. - Racy as is returns an .oat file and then drops the oat_file_manager lock, so the OatFile may be concurrently deleted. This CL fixes the race by only returning the information needed by the only user of GetPrimaryOatFile. Test: test.py Change-Id: I512cb82a1c8856c06abf9bb243a5eeee33701dd1
* Revert "Integrate ClassLoaderContext check in OatFileAssistant::GetBestOatFile."David Srbecky2021-04-171-41/+91
| | | | | | | | | | This reverts commit c8fe6517faf91b45683cddff3c15e08e489e12e9. Reason for revert: Breaks 1002-notify-startup (flaky) Test: "art/test.py -r --host -t 1002" in a loop Bug: 176960283 Change-Id: I4f5467efa5a1e09452b28b86b183791e4105b19e
* Integrate ClassLoaderContext check in OatFileAssistant::GetBestOatFile.Nicolas Geoffray2021-04-151-91/+41
| | | | | | | | | | | | This reduces some code duplication between OatFileManager::OpenDexFilesFromOat and GetDexoptNeeded. It also gives the chance for OatFileAssistant and GetDexoptNeeded to find the real best oat file. Test: test.py Bug: 176960283 Change-Id: Id366aef7a9e91833d8edaea965abda4cfdcd8455
* Protect the construction of the verification thread pool.Nicolas Geoffray2021-04-011-6/+8
| | | | | | | | | Multiple threads may try to allocate it. Also make the ThreadPool lock a bottom lock. Test: m Bug: 172811380 Change-Id: I061e20666cb784feb31be94785f2949451db9de9
* Allow /data odex files to be already loaded when creating app zygotes.Nicolas Geoffray2021-04-011-1/+8
| | | | | | | | Only allow odex files that don't have AOT or DEX code within. Test: atest android.appsecurity.cts.UseEmbeddedDexTest Bug: 179915231 Change-Id: I063c32ac6a9ffb36e908aa9861e275e35d7d23b6
* Support background verification of secondary dex files.Nicolas Geoffray2021-03-311-32/+42
| | | | | | | | | Re-use the infrastructure for background verification of in-memory dex files to also trigger for secondary dex files. Test: 692-vdex-secondary-loader Bug: 160294863 Change-Id: I754d519b6a903c51e439ccab100d2d8f22f45df3
* Remove '&' class loader context.Nicolas Geoffray2021-03-291-9/+1
| | | | | | | | This is now an unsupported context. Test: class_loader_context Bug: 132357300 Change-Id: I21bc6e3529944a57379845e90c7f49759db30d40
* Revamp vdex format for better extensibility.Nicolas Geoffray2021-03-251-10/+0
| | | | | | | | | | | | | - Remove class loader context and boot classpath checksum sections. Those are not needed now that VerifierDeps don't depend on them. - Remove remaining quickening encoding. - Introduce sections in a vdex file, which can be extended without requiring a version change. Test: test.py Bug: 160294863 Change-Id: I4e3e25f34d242dc4de37f30ba9d78bcffbc1436d
* Explictly pass VerifierDeps when asking for class verification.Nicolas Geoffray2021-03-221-1/+1
| | | | | | | | | | This will simplify creating and populating VerifierDeps at runtime, which is needed for doing and saving background verifcation of secondary dex files. Test: test.py Bug: 158463186 Change-Id: Ic17913ebd173700e866ba9309bf6ae131fcbc423
* Support loading vdex files without odex.Nicolas Geoffray2021-02-261-1/+6
| | | | | | | | | GetDexoptNeeded with 'verify' as filter will return false when a vdex is available. Test: 628-vdex, 820-vdex-multidex, test.py Bug: 176960283 Change-Id: I3ac2f747d1e7f5331a49a22c94983959e3b60122
* Use the checksum in the dex header for anynomous vdex files.Nicolas Geoffray2021-02-181-5/+1
| | | | | | | | | We were breaking (non-fatal) assumptions that location checksums are unique per dex file. Test: test.py Test: 692-vdex-inmem-loader Change-Id: I3c2cf186bb244a7e89b9dd0ec9e68cadc4696d6e
* libartpalette: Use fixed width typedef rather than enum for statusOrion Hodson2021-02-061-1/+1
| | | | | | | | | As the NDK guidelines note, the size of an enum is a compiler choice so an enum of unqualifed width cannot be considered stable ABI. Bug: 122824298 Test: TH Change-Id: I63d42fdb5a989aab15ec995529781b1b8c3ddb7a
* Improve trace logging when loading odex filesCalin Juravle2021-02-021-11/+46
| | | | | | | | | Add extra trace categories with information on the status of odex files and the outcome of the loading process. Test: gtests Bug: 178410926 Change-Id: I02ef78f34ba726f40c8a988db8dc995f4c01c55e
* Remove stripped-apk related logic from CLCCalin Juravle2020-12-141-1/+1
| | | | | | | | | Stripped-apks are no longer supported by the runtime and the current logic prevents bug fixes and code evolution. Bug: 111442216 Test: test-art-host Change-Id: I30d5825e4f6453981ca9165bebafe67557c28b93
* Call dex2oat and runtime hooks when creating / loading oat/dex files.Nicolas Geoffray2020-09-171-0/+7
| | | | | | | Test: m Bug: 162715919 Bug: 134558686 Change-Id: I293310106b8dcd7bec22d8790fd5f72b315776a8
* Revert^3 "VIXL simulator for ART (Stage1)"Ulya Trafimovich2020-07-291-4/+4
| | | | | | | | | | This reverts commit e886d68b9c40c941d8966b9c90d0e265c75fb19e. Reason for revert: simulator implemention is not ready yet. Test: lunch aosp_cf_x86_phone-userdebug && m Test: art/test.py --run-test --optimizing --host Change-Id: I03c8c09ea348205b0238d7a26caef3477cd6ae3b
* Revert^2 "VIXL simulator for ART (Stage1)"Ulyana Trafimovich2020-07-171-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3060bb919cd2f37c6a97e87c1581ac5294af72b3. Reason for revert: relanding original change. The fix is setting `device_supported: false` for libart(d)-simulator module in the .bp file (`m checkbuild` attempted to build it for arm32 and failed). Original commit message: VIXL simulator for ART (Stage1) Quick User Guide: test/README.simulator.md This CL enables running ART run-tests in a simulator on host machine. Some benefits of using this simulator approach: - No need to use a target device at all. Save developers from solving the device troubles: build, flash, usb, adb, etc. - Speed up development/debug/test cycle. - Allows easy debugging/testing new instruction features without real hardware. - Allows using a smaller AOSP Android manifest master-art. The Stage1 CL provides support for running 30% of current run-tests. The rest unsupported test cases are kept in knownfailures.json. Future work will be supporting proper stack frame layout between simulator and quick entrypoints, so that stack walk, QuickArgumentVisitor, deoptimization, etc can be supported. This CL adds libart(d)-simulator-container library to the ART APEX. It has caused the following increase of the APEX size (small, about 0.13% for release APEX, measured for target aosp_arm64-userdebug): Before: 88992 com.android.art.debug.apex 51612 com.android.art.release.apex 112352 com.android.art.testing.apex After: 89124 com.android.art.debug.apex 51680 com.android.art.release.apex 112468 com.android.art.testing.apex Change-Id: I461c80aa9c4ce0673eef1c0254d2c539f2b6a8d5 Test: art/test.py --run-test --optimizing --simulate-arm64 Test: art/test.py --run-test --optimizing --host Test: m test-art-host-gtest
* Revert "VIXL simulator for ART (Stage1)"Ulyana Trafimovich2020-07-161-4/+4
| | | | | | | | | This reverts commit 48ca6a681efe1fa1cf82d8af918bf9bbfd35ae96. Reason for revert: broken build 6685551 on aosp-master on full-eng Bug: 161440641 Change-Id: I849fe53f56c4786f0f2a1605cbfd215559f11072
* VIXL simulator for ART (Stage1)Xueliang Zhong2020-07-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quick User Guide: test/README.simulator.md This CL enables running ART run-tests in a simulator on host machine. Some benefits of using this simulator approach: - No need to use a target device at all. Save developers from solving the device troubles: build, flash, usb, adb, etc. - Speed up development/debug/test cycle. - Allows easy debugging/testing new instruction features without real hardware. - Allows using a smaller AOSP Android manifest master-art. The Stage1 CL provides support for running 30% of current run-tests. The rest unsupported test cases are kept in knownfailures.json. Future work will be supporting proper stack frame layout between simulator and quick entrypoints, so that stack walk, QuickArgumentVisitor, deoptimization, etc can be supported. This CL adds libart(d)-simulator-container library to the ART APEX. It has cause the following increase of the APEX size (small, about 0.13% for release APEX, measured for target aosp_arm64-userdebug): Before: 88992 com.android.art.debug.apex 51612 com.android.art.release.apex 112352 com.android.art.testing.apex After: 89124 com.android.art.debug.apex 51680 com.android.art.release.apex 112468 com.android.art.testing.apex Test: art/test.py --run-test --optimizing --simulate-arm64 Test: art/test.py --run-test --optimizing --host Test: m test-art-host-gtest Change-Id: I078812dde9aaf7128d9f262b2102251927596b7f
* Rewrite OatFileManager::OpenDexFilesFromOat.Nicolas Geoffray2020-07-021-461/+176
| | | | | | | | | | - Remove obsolete option -Xno-dex-file-fallback - Only load an oat file when class loader context matches. - Remove obsolete duplicate class check code. Bug: 132357300 Bug: 156250899 Change-Id: I78e645806e0de2f35ce2614285f1a7cbc705484c
* Search only the current class loader when checking for duplicatesCalin Juravle2020-06-251-4/+5
| | | | | | | | | | | | Do not check the entire class loader hierarchy for duplicate dex files because some use cases might be valid. The most error prone cases are actually duplicates within the same class loader. Test: gtest Bug: 154032843 Change-Id: I8c5efd4b2053a5b4052de6041d561554dddf4780 Merged-In: I8c5efd4b2053a5b4052de6041d561554dddf4780 (cherry picked from commit 86ac525b1f42876518c9040aeaf1a9710cc4332e)
* Do not execute OAT files that require app images that cannot be loadedEric Holk2020-05-131-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | This change creates a new requires-image flag in the OAT header, which is set when the file was created with an image (app image, etc.). If this flag is set, we will not load the OAT file as executable if the image could not be loaded. Going forward, this allows the compiler to assume there will be an app image when an app image is generated and in some cases generate better code. Note that we still must load the OAT file, because there will not always be another way to access the underlying DEX files. Revert submission 1298633-revert-155218105 Reason for revert: Fixing tests and relanding Reverted Changes: I701c91d5b:Revert "Disable ART run-test 2231-oat-require-app-... Ic5cda4c75:Revert "Reject OAT file in speed-profile if app im... Bug: 38313278 Test: m test-art-host-gtest-oat_file_assistant_test64 Test: atest android.server.wm.MultiDisplaySecurityTests#testDisplayHasAccess_UIDCanPresentOnPrivateDisplay android.classloaders.cts.UsesLibraryHostTest#testUsesLibrary_full Change-Id: I52cca033fa8e2e6de86514c833798c3d99b99477
* Revert "Reject OAT file in speed-profile if app image is rejected"Louis Chang2020-04-291-16/+15
| | | | | | | | | This reverts commit 7c25b09f62eb87b72bd8a98a31ea10fd97050f82. Reason for revert: b/155218105 Bug: 38313278 Change-Id: Ic5cda4c7546b01aeef73278338fea434ba176e60
* Reject OAT file in speed-profile if app image is rejectedEric Holk2020-04-271-15/+16
| | | | | | | | | | | | Speed profile should always have an app image available. This change makes ART refuse to load OAT files compiled with the speed-profile compiler filter if the app image cannot be loaded. This will enable the compiler to assume the existence of an app image and generate better code in some cases. Bug: 38313278 Test: ./test/run-test --host 2231-oat-require-app-image Change-Id: I2ee6fa7c7dc1d42d1fe1511fc60a7c0542237bfa
* Do not crash for broken stored VerifierDeps.Vladimir Marko2020-04-151-3/+4
| | | | | | | | | | | Propagate the error to the callers. Also avoid filling in unused data structures when we want only verified classes. Test: aosp_taimen-userdebug boots. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 151220989 Change-Id: I3ad0d725251037006128c1f631e6bd6dcec3a592
* Log an error when an app loads duplicate dex filesCalin Juravle2020-04-081-2/+38
| | | | | | | | | | | Creating a class loader with duplicate dex files in its classpath is most likely an unintended bug. That leads to rejecting any compiled code and hurts performance by extracting in memory. Test: run-test gtest Bug: 149410951 Change-Id: Ieebb69c6bd03acbe95dd8bedb6101d70390b92d8
* Revert "ART: Conditionally remove loaded-oat-count check"Nicolas Geoffray2020-03-131-10/+9
| | | | | | | | | | | | | Bug: 128688902 Bug: 150032912 Test: boots This reverts commit e912955b98cdc224f2f13455f592b63e96bf5634. (cherry-picked from commit 3734c2822fe2dc8eaaedbc311f9828ce443b02e6) Merged-In: I209489f69e4f2b02e7fa93090539575098a28025 Change-Id: I209489f69e4f2b02e7fa93090539575098a28025
* Revert "ART: Forbid the zygote to load code outside of system"Nicolas Geoffray2020-03-111-3/+3
| | | | | | | | | This reverts commit 9ef308da0ea8d1df2edf65d4957599fafcc56aeb. Bug: 150032912 Bug: 129454856 Test: boots Change-Id: I522b1e0e2b9116239ca206aa5c65347976eac7ab
* Do not check for collision if we only extracted the apkCalin Juravle2020-02-121-0/+6
| | | | | | | | | | | | There is no need to check for collisions or verify the class loader context if the verification is not enabled for the oat file. This prevents the collision checks or dex2oat reruns when we only extracted the dex files from apk and fixes. Test: test-art-host Bug: 147208643 Change-Id: I84e77baa89fe36705cc650ff21f95b244e7941d4
* Remove obsolete CHECKs for image dex file location.Vladimir Marko2020-02-101-1/+0
| | | | | | | | | | | | | | | | | | | | These checks are not valid for --single-image extensions or for extensions after boot class path components without corresponding images. Instead of updating these checks, rely on the checks done by the ImageSpace::LoadBootImage(). Test: aosp_taimen-userdebug boots when built with `DEXPREOPT_USE_ART_IMAGE=true`. Then adb root && \ adb shell setprop persist.sys.dalvik.vm.lib.2 libartd.so && \ adb reboot # Starts correctly. Test: adb root && \ adb shell stop && \ adb shell setprop dalvik.vm.boot-image \ 'boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof' && adb shell start # Starts correctly; no tombstones. Bug: 119800099 Change-Id: Id6615a8ac6b423c5f0784f3c0f621bcc016073b7
* Clean up dead code & outdated comment in app image validationDan Zimmerman2020-01-211-1/+0
| | | | | | | | | After I8f2a1ab1baa8f09e7a7d4913ff790927eb66cddf there was a stale comment left around and code left around to extract the runtime ClassLoader's dex file names. Test: test/testrunner/testrunner.py -b --host Change-Id: I8194f1188d23b59c90d0a10fbc14e53225ebce6a
* Avoid making oat files executable for system server profilingMathieu Chartier2019-11-041-1/+1
| | | | | | | | | | Done so that we will only use JIT + interpreter to get samples for services.jar. Bug: 139883463 Test: showmap `pid system_server` and verify Change-Id: I6f13446948fd92a43a9312988fd6e00ee4a0ed41
* Fix two bugs in jitzygote configuration.Nicolas Geoffray2019-06-101-3/+1
| | | | | | | | | - Fix a stalled ObjPtr reference. - Fix DCHECKs now invalid with system server also using 'prejit'. Bug: 119800099 Test: boots Change-Id: If64e09115192f06763335237a7518df619965a3c
* Add runtimeISA logging when no original dex filesrandy.jeong2019-06-031-2/+3
| | | | | | | | | It's easy to figure out which ABI uses for the issued process. Bug: none Test: N/A Change-Id: Ia3a66e1ab5503fd1061cf51ff560fe5a1d168599 Signed-off-by: randy.jeong <randy.jeong@samsung.com>
* jitzygote: compile system server methods at boot.Nicolas Geoffray2019-05-101-0/+7
| | | | | | Test: m && boots Bug: 119800099 Change-Id: Ia02a68bc3f152fe9a733577e66f327264518fe6b
* Enable InMemoryDexClassLoader vdex only for Q+ targetsDavid Brazdil2019-04-031-3/+11
| | | | | | | | | Some legacy apps depend on InMemoryDexClassLoader not loading classes immediately. Disable verification result caching for them. Bug: 2131483 Test: art/test.py -b -r -t 692 -t 693 Change-Id: Ie230b837c2fdd5cda13e06faba501fe07e1f65bc
* Preverify InMemoryDexClassLoader-loaded classes from vdexDavid Brazdil2019-04-031-0/+138
| | | | | | | | | | | | This patch creates a new subclass of OatFile - OatFileBackedByVdex - which initializes OatDexClass instances using the verification info in a vdex file created by a previous instance of the class loader. The OatFile is not backed by an actual .oat file. Bug: 72131483 Test: art/tools/run-libcore-tests.sh Test: art/test.py -b -r -t 692 -t 693 Change-Id: I3fd055abe17ee9739c07f2e2f4fc2543e4ec8c9e
* Create vdex file for dex loaded with InMemoryDexClassLoaderDavid Brazdil2019-04-021-10/+132
| | | | | | | | | | | | | | | | | | | | | | | | | Previous CL introduced a background verification thread for dex bytecode loaded with InMemoryDexClassLoader. Extend the logic to collect the results of class verification into an instance of VerifierDeps and dump it into a vdex file in the app's data folder. The background thread does not collect full VerifierDeps (e.g. assignability dependencies, etc), just a bit vector of whether a class was successfully verified or not. The vdex format is extended to include boot classpath checksums and the class loader context it was created for. These are optional and currently left empty for regular vdex files. The generated vdex files are treated as a cache with a limited capacity, currently capped at 8 files. The least recently used file (in terms of atime reported by stat()) is unlinked if the cache is full and a new vdex is about to be generated. Bug: 72131483 Test: art/tools/run-libcore-tests.sh Test: art/test.py -b -r -t 692 -t 693 Change-Id: I26080d894d34d8f35f00c7925db569f22f008d2c
* Revert^2 Verify InMemoryDexClassLoader classes in a background threadDavid Brazdil2019-04-021-0/+117
| | | | | | | | | | | | | | | When dex bytecode is loaded using InMemoryDexClassLoader, automatically spawn a background thread which performs bytecode verification on every class. This reverts commit b4bb63aa4be80722643611fc931976b3544f14b5. This CL fixes a previous issue where runtime threads are not allowed to load classes in debuggable mode. Bug: 72131483 Change-Id: Icdeb5be2b33ef55675e3a23886e71ce3b4b02f43 Test: art/tools/run-libcore-tests.sh Test: art/test.py -b -r -t 692
* ART: Forbid the zygote to load code outside of systemAndreas Gampe2019-04-011-3/+3
| | | | | | | | | | Protect the window between runtime creation and forking. Bug: 129454856 Test: m test-art-host Test: Device boots Test: manual Change-Id: I6108b4196235cb2a2ede52e9d9e3450afe78f90e
* Revert^4 "Disable check that no oat libraries are loaded."Andreas Gampe2019-04-011-1/+10
| | | | | | | | | | This reverts commit 8b5af2c1fb1f3b54ec4eb8c3188a7f7105466b6d. Reason for revert: Fix capture of image files. Bug: 128529256 Change-Id: I55e7ee178695358d5f3e19c0d0641bcaaa3fe355 Test: m test-art-host
* Revert "Verify InMemoryDexClassLoader classes in a background thread"David Brazdil2019-04-011-109/+0
| | | | | | | | This reverts commit d592dbe1e2b09079382713220b2ff59f02db1859. Reason for revert: art buildbots crashing Change-Id: Ida6bb79cb498e708df5c535edc16e4fe9875442c
* Verify InMemoryDexClassLoader classes in a background threadDavid Brazdil2019-04-011-0/+109
| | | | | | | | | | | When dex bytecode is loaded using InMemoryDexClassLoader, automatically spawn a background thread which performs bytecode verification on every class. Bug: 72131483 Test: art/tools/run-libcore-tests.sh Test: art/test.py -b -r -t 692 Change-Id: Iad54f510de02cd073e68d775d34b7dd5bdef304e