Do not use realpath in oat file assistant
Installd logic was updated to compile secondary dex
files next to their specified loading path (instead of the realpath).
It simplifies cleaning secondary dex files artifacts from sym link
locations.
Bug: 64460009
Test: m test-art-host-gtest
Change-Id: I79aea4932672c6c25aff8e03136efef39bc93fe6
diff --git a/runtime/oat_file_assistant.cc b/runtime/oat_file_assistant.cc
index 378ce2c..b8a13da 100644
--- a/runtime/oat_file_assistant.cc
+++ b/runtime/oat_file_assistant.cc
@@ -99,28 +99,7 @@
<< " vdex_fd=" << vdex_fd;;
}
- // Try to get the realpath for the dex location.
- //
- // This is OK with respect to dalvik cache naming scheme because we never
- // generate oat files starting from symlinks which go into dalvik cache.
- // (recall that the oat files in dalvik cache are encoded by replacing '/'
- // with '@' in the path).
- // The boot image oat files (which are symlinked in dalvik-cache) are not
- // loaded via the oat file assistant.
- //
- // The only case when the dex location may resolve to a different path
- // is for secondary dex files (e.g. /data/user/0 symlinks to /data/data and
- // the app is free to create its own internal layout). Related to this it is
- // worthwhile to mention that installd resolves the secondary dex location
- // before calling dex2oat.
- UniqueCPtr<const char[]> dex_location_real(realpath(dex_location, nullptr));
- if (dex_location_real != nullptr) {
- dex_location_.assign(dex_location_real.get());
- } else {
- // If we can't get the realpath of the location there's not much point in trying to move on.
- PLOG(ERROR) << "Could not get the realpath of dex_location " << dex_location;
- return;
- }
+ dex_location_.assign(dex_location);
if (load_executable_ && isa != kRuntimeISA) {
LOG(WARNING) << "OatFileAssistant: Load executable specified, "