android apk unpack,Android 10 support

这篇博客深入探讨了Android系统中Vdex文件和Oat文件的结构与作用,涉及类加载、验证依赖、 Dex 文件解析等关键过程。文章详细解释了Vdex文件的验证头信息、Dex文件的快速加载以及Oat文件在类加载过程中的角色,揭示了Android运行时的安全机制和性能优化策略。
摘要由CSDN通过智能技术生成

$ r2 libart.so

[0x0012d000]> iEq~+opencom,openme,dexfile

0x00562a08 276 art::verifier::VerifierDeps::VerifyDexFile(art::Handle<:mirror::classloader>, art::DexFile const&, art::verifier::VerifierDeps::DexFileDeps const&, std::__1::vector<:dexfile const std::__1::allocator> > const&, art::Thread*, std::__1::basic_string, std::__1::allocator >*) const

0x00522edc 628 art::verifier::MethodVerifier::MethodVerifier(art::Thread*, art::DexFile const*, art::dex::CodeItem const*, unsigned int, bool, bool, bool)

0x0044ce24 60 art::OatFile::FindOatClass(art::DexFile const&, unsigned short, bool*)

0x0051f934 24 art::VdexFile::VerifierDepsHeader::HasDexSection() const

0x0051f8e8 24 art::VdexFile::VerifierDepsHeader::IsVerifierDepsVersionValid() const

0x001640cc 112 art::FindInClassPath(char const*, unsigned long, std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x001dd3a4 296 art::optimizer::ArtDecompileDEX(art::DexFile const&, art::dex::CodeItem const&, art::ArrayRef const&, bool)

0x0044af04 3364 art::OatDexFile::GetOatClass(unsigned short) const

0x00168838 1156 art::ClassLinker::SetupClass(art::DexFile const&, art::dex::ClassDef const&, art::Handle<:mirror::class>, art::ObjPtr<:mirror::classloader>)

0x0055e058 512 art::verifier::VerifierDeps::AddFieldResolution(art::DexFile const&, unsigned int, art::ArtField*)

0x0056292c 220 art::verifier::VerifierDeps::ValidateDependencies(art::Thread*, art::Handle<:mirror::classloader>, std::__1::vector<:dexfile const std::__1::allocator> > const&, std::__1::basic_string, std::__1::allocator >*) const

0x001603bc 344 art::ClassLinker::AppendToBootClassPath(art::DexFile const&, art::ObjPtr<:mirror::dexcache>)

0x0055f054 76 art::verifier::VerifierDeps::MaybeRecordClassResolution(art::DexFile const&, art::dex::TypeIndex, art::ObjPtr<:mirror::class>)

0x0044ac54 112 art::OatDexFile::OatDexFile(art::OatFile const*, art::DexFile const*, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&)

0x0056395c 2876 art::verifier::VerifierDeps::VerifyFields(art::Handle<:mirror::classloader>, art::DexFile const&, std::__1::set<:verifier::verifierdeps::fieldresolution std::__1::less>, std::__1::allocator<:verifier::verifierdeps::fieldresolution> > const&, art::Thread*, std::__1::basic_string, std::__1::allocator >*) const

0x001944dc 3136 art::ClassLoaderContext::OpenDexFiles(art::InstructionSet, std::__1::basic_string, std::__1::allocator > const&, std::__1::vector > const&)

0x0016c028 724 art::ClassLinker::IsDexFileRegistered(art::Thread*, art::DexFile const&)

0x003f4e50 624 art::mirror::DexCache::InitializeDexCache(art::Thread*, art::ObjPtr<:mirror::dexcache>, art::ObjPtr<:mirror::string>, art::DexFile const*, art::LinearAlloc*, art::PointerSize)

0x001d85e8 580 art::annotations::HasDeadReferenceSafeAnnotation(art::DexFile const&, art::dex::ClassDef const&)

0x0044aa08 588 art::OatDexFile::OatDexFile(art::OatFile const*, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, unsigned int, unsigned char const*, unsigned char const*, art::LengthPrefixedArray<:indexbssmappingentry> const*, art::LengthPrefixedArray<:indexbssmappingentry> const*, art::LengthPrefixedArray<:indexbssmappingentry> const*, unsigned int const*, art::DexLayoutSections const*)

0x0055def8 352 art::verifier::VerifierDeps::AddClassResolution(art::DexFile const&, art::dex::TypeIndex, art::ObjPtr<:mirror::class>)

0x0044aef4 16 art::OatDexFile::IsBackedByVdexOnly() const

0x00163474 404 art::ClassLinker::AllocDexCache(art::ObjPtr<:mirror::string>*, art::Thread*, art::DexFile const&)

0x00520b48 8 art::VdexFile::GetQuickeningInfoTableOffset(unsigned char const*) const

0x0019f27c 204 art::ThrowAbstractMethodError(unsigned int, art::DexFile const&)

0x0016b4a0 1960 art::ClassLinker::LoadMethod(art::DexFile const&, art::ClassAccessor::Method const&, art::Handle<:mirror::class>, art::ArtMethod*)

0x004505cc 992 art::OatFileAssistant::LoadDexFiles(art::OatFile const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > >*)

0x0052022c 432 art::VdexFile::OpenAllDexFiles(std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > >*, std::__1::basic_string, std::__1::allocator >*)

0x0055c4c8 1880 art::verifier::VerifierDeps::MergeWith(std::__1::unique_ptr<:verifier::verifierdeps std::__1::default_delete> >, std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x0055f188 2844 art::verifier::VerifierDeps::Encode(std::__1::vector<:dexfile const std::__1::allocator> > const&, std::__1::vector >*) const

0x0051f900 52 art::VdexFile::VerifierDepsHeader::IsDexSectionVersionValid() const

0x0056160c 1588 art::verifier::VerifierDeps::DexFileDeps::Equals(art::verifier::VerifierDeps::DexFileDeps const&) const

0x00337c14 3328 art::jit::Jit::CompileMethodsFromProfile(art::Thread*, std::__1::vector<:dexfile const std::__1::allocator> > const&, std::__1::basic_string, std::__1::allocator > const&, art::Handle<:mirror::classloader>, bool)

0x0055d904 192 art::verifier::VerifierDeps::GetMethodDeclaringClassStringId(art::DexFile const&, unsigned int, art::ArtMethod*)

0x0015ed3c 2016 art::ClassLinker::RegisterDexFileLocked(art::DexFile const&, art::ObjPtr<:mirror::dexcache>, art::ObjPtr<:mirror::classloader>)

0x0044ae28 188 art::OatDexFile::OpenDexFile(std::__1::basic_string, std::__1::allocator >*) const

0x00331254 280 art::RemoveNativeDebugInfoForDex(art::Thread*, art::DexFile const*)

0x0014457c 932 art::ArtMethod::FindDexMethodIndexInOtherDexFile(art::DexFile const&, unsigned int)

0x00163608 196 art::ClassLinker::AllocAndInitializeDexCache(art::Thread*, art::DexFile const&, art::LinearAlloc*)

0x004cd5a4 940 art::RuntimeCallbacks::ClassPreDefine(char const*, art::Handle<:mirror::class>, art::Handle<:mirror::classloader>, art::DexFile const&, art::dex::ClassDef const&, art::DexFile const**, art::dex::ClassDef const**)

0x00520b88 616 art::VdexFile::GetQuickenedInfoOf(art::DexFile const&, unsigned int) const

0x00520b50 20 art::VdexFile::GetQuickenInfoOffsetTable(unsigned char const*, art::ArrayRef const&) const

0x00411374 556 art::register_dalvik_system_DexFile(_JNIEnv*)

0x00164fc8 2624 art::ClassLinker::DefineClass(art::Thread*, char const*, unsigned long, art::Handle<:mirror::classloader>, art::DexFile const&, art::dex::ClassDef const&)

0x00454860 7904 art::OatFileManager::OpenDexFilesFromOat(char const*, _jobject*, _jobjectArray*, art::OatFile const**, std::__1::vector<:__1::basic_string std::__1::char_traits>, std::__1::allocator >, std::__1::allocator<:__1::basic_string std::__1::char_traits>, std::__1::allocator > > >*)

0x00528f18 288 art::verifier::MethodVerifier::CreateVerifier(art::Thread*, art::DexFile const*, art::Handle<:mirror::dexcache>, art::Handle<:mirror::classloader>, art::dex::ClassDef const&, art::dex::CodeItem const*, unsigned int, art::ArtMethod*, unsigned int, bool, bool, bool, bool, bool, unsigned int)

0x00456740 468 art::OatFileManager::OpenDexFilesFromOat(std::__1::vector<:memmap std::__1::allocator> >&&, _jobject*, _jobjectArray*, art::OatFile const**, std::__1::vector<:__1::basic_string std::__1::char_traits>, std::__1::allocator >, std::__1::allocator<:__1::basic_string std::__1::char_traits>, std::__1::allocator > > >*)

0x005610c8 504 art::verifier::VerifierDeps::VerifierDeps(std::__1::vector<:dexfile const std::__1::allocator> > const&, art::ArrayRef)

0x001d7a78 936 art::annotations::GetNativeMethodAnnotationAccessFlags(art::DexFile const&, art::dex::ClassDef const&, unsigned int)

0x0016e8fc 584 art::ClassLinker::VerifyClassUsingOatFile(art::DexFile const&, art::ObjPtr<:mirror::class>, art::ClassStatus&)

0x00154b60 17428 art::ClassLinker::InitWithoutImage(std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > >, std::__1::basic_string, std::__1::allocator >*)

0x0055ccd0 360 art::verifier::VerifierDeps::GetClassDescriptorStringId(art::DexFile const&, art::ObjPtr<:mirror::class>)

0x00169630 1236 art::ClassLinker::LoadSuperAndInterfaces(art::Handle<:mirror::class>, art::DexFile const&)

0x005612c0 280 art::verifier::VerifierDeps::ParseVerifiedClasses(std::__1::vector<:dexfile const std::__1::allocator> > const&, art::ArrayRef)

0x00456914 2084 art::OatFileManager::OpenDexFilesFromOat_Impl(std::__1::vector<:memmap std::__1::allocator> >&&, _jobject*, _jobjectArray*, art::OatFile const**, std::__1::vector<:__1::basic_string std::__1::char_traits>, std::__1::allocator >, std::__1::allocator<:__1::basic_string std::__1::char_traits>, std::__1::allocator > > >*)

0x00196464 2156 art::ClassLoaderContext::CreateClassLoader(std::__1::vector<:dexfile const std::__1::allocator> > const&) const

0x005cda40 8 art::WellKnownClasses::dalvik_system_DexPathList__Element_dexFile

0x001d834c 668 art::annotations::MethodContainsRSensitiveAccess(art::DexFile const&, art::dex::ClassDef const&, unsigned int)

0x005213d8 420 art::VdexFile::MatchesDexFileChecksums(std::__1::vector<:dexfile::header const std::__1::allocator> > const&) const

0x0044aee4 16 art::OatDexFile::GetOatClassOffset(unsigned short) const

0x00159fdc 352 art::ClassLinker::AppendToBootClassPath(art::Thread*, art::DexFile const&)

0x005cd418 32 art::RuntimeArgumentMap::NoDexFileFallback

0x00185158 1408 art::ClassLinker::CreateWellKnownClassLoader(art::Thread*, std::__1::vector<:dexfile const std::__1::allocator> > const&, _jclass*, _jobject*, _jobject*)

0x00521ec8 2436 _ZN3art8verifier13ClassVerifier11VerifyClassEPNS_6ThreadEPKNS_7DexFileENS_6HandleINS_6mirror8DexCacheEEENS7_INS8_11ClassLoaderEEERKNS_3dex8ClassDefEPNS_17CompilerCallbacksEbNS0_15HardFailLogModeEjPNSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocato

0x0055f0a0 72 art::verifier::VerifierDeps::MaybeRecordFieldResolution(art::DexFile const&, unsigned int, art::ArtField*)

0x0055ef0c 188 art::verifier::VerifierDeps::MaybeRecordVerificationStatus(art::DexFile const&, art::dex::ClassDef const&, art::verifier::FailureKind)

0x00448988 432 art::ElfOatFile::InitializeFromElfFile(int, art::ElfFile*, art::VdexFile*, char const*, std::__1::basic_string, std::__1::allocator >*)

0x005204e4 124 art::VdexFile::GetNextDexFileData(unsigned char const*) const

0x0051f990 12 art::VdexFile::DexSectionHeader::DexSectionHeader(unsigned int, unsigned int, unsigned int)

0x0055c234 324 art::verifier::VerifierDeps::VerifierDeps(std::__1::vector<:dexfile const std::__1::allocator> > const&, bool)

0x005647ac 2792 art::verifier::VerifierDeps::VerifyMethods(art::Handle<:mirror::classloader>, art::DexFile const&, std::__1::set<:verifier::verifierdeps::methodresolution std::__1::less>, std::__1::allocator<:verifier::verifierdeps::methodresolution> > const&, art::Thread*, std::__1::basic_string, std::__1::allocator >*) const

0x001857b4 20 art::ClassLinker::CreatePathClassLoader(art::Thread*, std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x0055cc20 88 art::verifier::VerifierDeps::GetDexFileDeps(art::DexFile const&)

0x0051f94c 68 art::VdexFile::VerifierDepsHeader::VerifierDepsHeader(unsigned int, unsigned int, bool, unsigned int, unsigned int)

0x003f23dc 152 art::mirror::Class::FindTypeIndexInOtherDexFile(art::DexFile const&)

0x00450c4c 8 art::OatFileAssistant::OdexFileStatus()

0x0055f130 88 art::verifier::VerifierDeps::MaybeRecordAssignability(art::DexFile const&, art::ObjPtr<:mirror::class>, art::ObjPtr<:mirror::class>, bool, bool)

0x00457138 1916 art::OatFileManager::RunBackgroundVerification(std::__1::vector<:dexfile const std::__1::allocator> > const&, _jobject*, char const*)

0x00523154 124 _ZN3art8verifier14MethodVerifier12VerifyMethodEPNS_6ThreadEjPKNS_7DexFileENS_6HandleINS_6mirror8DexCacheEEENS7_INS8_11ClassLoaderEEERKNS_3dex8ClassDefEPKNSD_8CodeItemEPNS_9ArtMethodEjPNS_17CompilerCallbacksEbNS0_15HardFailLogModeEbjPNSt3__112basic_string

0x0015ecf0 76 art::ClassLinker::FindDexCacheDataLocked(art::DexFile const&)

0x0055e258 512 art::verifier::VerifierDeps::AddMethodResolution(art::DexFile const&, unsigned int, art::ArtMethod*)

0x0044acc4 260 art::OatDexFile::OatDexFile(art::TypeLookupTable&&)

0x0055f0e8 72 art::verifier::VerifierDeps::MaybeRecordMethodResolution(art::DexFile const&, unsigned int, art::ArtMethod*)

0x0055c4c0 8 art::verifier::VerifierDeps::VerifierDeps(std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x0029455c 392 art::hiddenapi::InitializeDexFileDomain(art::DexFile const&, art::ObjPtr<:mirror::classloader>)

0x0044ae1c 12 art::OatDexFile::FileSize() const

0x0019595c 268 art::ClassLoaderContext::CheckDexFilesOpened(std::__1::basic_string, std::__1::allocator > const&) const

0x003376f0 168 art::jit::Jit::RegisterDexFiles(std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > > const&, art::ObjPtr<:mirror::classloader>)

0x0055ea88 976 art::verifier::VerifierDeps::AddAssignability(art::DexFile const&, art::ObjPtr<:mirror::class>, art::ObjPtr<:mirror::class>, bool, bool)

0x001d7e20 656 art::annotations::FieldIsReachabilitySensitive(art::DexFile const&, art::dex::ClassDef const&, unsigned int)

0x0055ce38 2764 art::verifier::VerifierDeps::GetIdFromString(art::DexFile const&, std::__1::basic_string, std::__1::allocator > const&)

0x00524a3c 536 art::verifier::MethodVerifier::VerifyMethodAndDump(art::Thread*, art::VariableIndentationOutputStream*, unsigned int, art::DexFile const*, art::Handle<:mirror::dexcache>, art::Handle<:mirror::classloader>, art::dex::ClassDef const&, art::dex::CodeItem const*, art::ArtMethod*, unsigned int, unsigned int)

0x00560738 2448 art::verifier::VerifierDeps::DecodeDexFileDeps(art::verifier::VerifierDeps::DexFileDeps&, unsigned char const**, unsigned char const*)

0x00451908 784 art::OatFileAssistant::AnonymousDexVdexLocation(std::__1::vector<:dexfile::header const std::__1::allocator> > const&, art::InstructionSet, unsigned int*, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*)

0x0055daec 192 art::verifier::VerifierDeps::GetFieldDeclaringClassStringId(art::DexFile const&, unsigned int, art::ArtField*)

0x0044aa08 588 art::OatDexFile::OatDexFile(art::OatFile const*, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, unsigned int, unsigned char const*, unsigned char const*, art::LengthPrefixedArray<:indexbssmappingentry> const*, art::LengthPrefixedArray<:indexbssmappingentry> const*, art::LengthPrefixedArray<:indexbssmappingentry> const*, unsigned int const*, art::DexLayoutSections const*)

0x0055cc78 88 art::verifier::VerifierDeps::GetDexFileDeps(art::DexFile const&) const

0x00160010 544 art::ClassLinker::OpenImageDexFiles(art::gc::space::ImageSpace*, std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > >*, std::__1::basic_string, std::__1::allocator >*)

0x0055c234 324 art::verifier::VerifierDeps::VerifierDeps(std::__1::vector<:dexfile const std::__1::allocator> > const&, bool)

0x001843a0 3512 art::ClassLinker::CreateWellKnownClassLoader(art::Thread*, std::__1::vector<:dexfile const std::__1::allocator> > const&, art::Handle<:mirror::class>, art::Handle<:mirror::classloader>, art::Handle<:mirror::objectarray> >)

0x00331078 476 art::AddNativeDebugInfoForDex(art::Thread*, art::DexFile const*)

0x0044bc54 136 art::OatDexFile::FindClassDef(art::DexFile const&, char const*, unsigned long)

0x00197750 460 art::ClassLoaderContext::FlattenOpenedDexFiles() const

0x00565558 112 art::verifier::VerifierDeps::IsInDexFiles(char const*, unsigned long, std::__1::vector<:dexfile const std::__1::allocator> > const&, art::DexFile const**) const

0x0051fc54 1496 art::VdexFile::OpenAtAddress(unsigned char*, unsigned long, bool, int, unsigned long, std::__1::basic_string, std::__1::allocator > const&, bool, bool, bool, std::__1::basic_string, std::__1::allocator >*)

0x005cda18 8 art::WellKnownClasses::dalvik_system_DexFile_cookie

0x00563224 1444 art::verifier::VerifierDeps::VerifyClasses(art::Handle<:mirror::classloader>, art::DexFile const&, std::__1::set<:verifier::verifierdeps::classresolution std::__1::less>, std::__1::allocator<:verifier::verifierdeps::classresolution> > const&, art::Thread*, std::__1::basic_string, std::__1::allocator >*) const

0x0015e604 144 art::ClassLinker::AddExtraBootDexFiles(art::Thread*, std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > >&&)

0x0051f99c 696 art::VdexFile::OpenAtAddress(unsigned char*, unsigned long, bool, std::__1::basic_string, std::__1::allocator > const&, bool, bool, bool, std::__1::basic_string, std::__1::allocator >*)

0x00445c7c 616 art::OatFileBase::Setup(std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x0044d068 188 art::OatDexFile::AssertAotCompiler()

0x0044adc8 84 art::OatDexFile::~OatDexFile()

0x00520b64 24 art::VdexFile::GetQuickenInfoOffsetTable(art::DexFile const&, art::ArrayRef const&) const

0x0044bcdc 252 art::OatDexFile::MadviseDexFile(art::DexFile const&, art::MadviseState)

0x00443e4c 8 art::OatHeader::SetOatDexFilesOffset(unsigned int)

0x001d9bc4 1324 art::annotations::GetLineNumFromPC(art::DexFile const*, art::ArtMethod*, unsigned int)

0x00448fb8 172 art::OatFile::OpenWithElfFile(int, art::ElfFile*, art::VdexFile*, std::__1::basic_string, std::__1::allocator > const&, char const*, std::__1::basic_string, std::__1::allocator >*)

0x003f50c0 2144 _ZN3art6mirror8DexCache4InitEPKNS_7DexFileENS_6ObjPtrINS0_6StringEEEPNSt3__16atomicINS0_12DexCachePairIS6_EEEEjPNS9_INSA_INS0_5ClassEEEEEjPNS9_INS0_18NativeDexCachePairINS_9ArtMethodEEEEEjPNS9_INSI_INS_8ArtFieldEEEEEjPNS9_INSA_INS0_10MethodTypeEEEEEjPNS_

0x0051f990 12 art::VdexFile::DexSectionHeader::DexSectionHeader(unsigned int, unsigned int, unsigned int)

0x0044bc28 44 art::OatDexFile::GetQuickenedInfoOf(art::DexFile const&, unsigned int) const

0x00168fb8 1656 art::ClassLinker::LoadClass(art::Thread*, art::DexFile const&, art::dex::ClassDef const&, art::Handle<:mirror::class>)

0x00443e44 8 art::OatHeader::GetOatDexFilesOffset() const

0x0051f8d0 24 art::VdexFile::VerifierDepsHeader::IsMagicValid() const

0x005203dc 264 art::VdexFile::Unquicken(std::__1::vector<:dexfile const std::__1::allocator> > const&, bool) const

0x0052157c 704 art::VdexFile::MatchesBootClassPathChecksums() const

0x00562b1c 1800 art::verifier::VerifierDeps::VerifyAssignability(art::Handle<:mirror::classloader>, art::DexFile const&, std::__1::set<:verifier::verifierdeps::typeassignability std::__1::less>, std::__1::allocator<:verifier::verifierdeps::typeassignability> > const&, bool, art::Thread*, std::__1::basic_string, std::__1::allocator >*) const

0x001d80b0 668 art::annotations::MethodIsReachabilitySensitive(art::DexFile const&, art::dex::ClassDef const&, unsigned int)

0x0044ac54 112 art::OatDexFile::OatDexFile(art::OatFile const*, art::DexFile const*, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&)

0x0055c4c0 8 art::verifier::VerifierDeps::VerifierDeps(std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x001681bc 1660 art::ClassLinker::RegisterDexFile(art::DexFile const&, art::ObjPtr<:mirror::classloader>)

0x00167e5c 864 art::ClassLinker::SizeOfClassWithoutEmbeddedTables(art::DexFile const&, art::dex::ClassDef const&)

0x0052183c 612 art::VdexFile::MatchesClassLoaderContext(art::ClassLoaderContext const&) const

0x00270a98 540 art::gc::space::ImageSpace::GetBootClassPathChecksums(std::__1::vector<:gc::space::imagespace std::__1::allocator> > const&, std::__1::vector<:dexfile const std::__1::allocator> > const&)

0x0044acc4 260 art::OatDexFile::OatDexFile(art::TypeLookupTable&&)

0x00520df0 856 art::VdexFile::WriteToDisk(std::__1::basic_string, std::__1::allocator > const&, std::__1::vector<:dexfile const std::__1::allocator> > const&, art::verifier::VerifierDeps const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator >*)

0x00185824 176 art::ClassLinker::InsertDexFileInToClassLoader(art::ObjPtr<:mirror::object>, art::ObjPtr<:mirror::classloader>)

0x0044adc8 84 art::OatDexFile::~OatDexFile()

0x0055efc8 140 art::verifier::VerifierDeps::RecordClassVerified(art::DexFile const&, art::dex::ClassDef const&)

0x005cda20 8 art::WellKnownClasses::dalvik_system_DexFile_fileName

0x00520560 1512 art::VdexFile::UnquickenDexFile(art::DexFile const&, unsigned char const*, bool) const

0x0044e3bc 1472 art::OatFileAssistant::DexLocationToOdexFilename(std::__1::basic_string, std::__1::allocator > const&, art::InstructionSet, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*)

0x0051f94c 68 art::VdexFile::VerifierDepsHeader::VerifierDepsHeader(unsigned int, unsigned int, bool, unsigned int, unsigned int)

0x005610c8 504 art::verifier::VerifierDeps::VerifierDeps(std::__1::vector<:dexfile const std::__1::allocator> > const&, art::ArrayRef)

0x003f4e10 44 art::mirror::ClassExt::SetOriginalDexFile(art::ObjPtr<:mirror::object>)

0x0055ee58 180 art::verifier::VerifierDeps::MaybeRecordClassRedefinition(art::DexFile const&, art::dex::ClassDef const&)

0x0016c2fc 1100 art::ClassLinker::FindDexCache(art::Thread*, art::DexFile const&)

0x0055dbac 644 art::verifier::VerifierDeps::GetStringFromId(art::DexFile const&, art::dex::StringIndex) const

0x005655c8 1420 art::verifier::VerifierDeps::VerifyInternalClasses(art::DexFile const&, std::__1::vector<:dexfile const std::__1::allocator> > const&, std::__1::vector > const&, std::__1::vector > const&, std::__1::basic_string, std::__1::allocator >*) const

0x003f4e48 8 art::mirror::ClassExt::SetPreRedefineDexFile(art::DexFile const*)

0x004509ac 36 art::OatFileAssistant::HasOriginalDexFiles()

0x00520b7c 12 art::VdexFile::UnquickenDexFile(art::DexFile const&, art::DexFile const&, bool) const

0x00449c54 3508 art::OatFile::GetOatDexFile(char const*, unsigned int const*, std::__1::basic_string, std::__1::allocator >*) const

0x005cd7d0 8 art::WellKnownClasses::dalvik_system_DexFile

0x0015c82c 6844 _ZN3art11ClassLinker13AddImageSpaceEPNS_2gc5space10ImageSpaceENS_6HandleINS_6mirror11ClassLoaderEEEP13_jobjectArrayPKcPNSt3__16vectorINSD_10unique_ptrIKNS_7DexFileENSD_14default_deleteISH_EEEENSD_9allocatorISK_EEEEPNSD_12basic_stringIcNSD_11char_traitsIc

0x00450448 388 art::OatFileAssistant::LoadDexFiles(art::OatFile const&, char const*)

0x00449950 272 art::OatFile::OpenFromVdex(std::__1::vector<:dexfile const std::__1::allocator> > const&, std::__1::unique_ptr<:vdexfile std::__1::default_delete> >&&, std::__1::basic_string, std::__1::allocator > const&)

0x00450c5c 540 art::OatFileAssistant::DexChecksumUpToDate(art::VdexFile const&, std::__1::basic_string, std::__1::allocator >*)

0x0015c82c 6844 _ZN3art11ClassLinker13AddImageSpaceEPNS_2gc5space10ImageSpaceENS_6HandleINS_6mirror11ClassLoaderEEEP13_jobjectArrayPKcPNSt3__16vectorINSD_10unique_ptrIKNS_7DexFileENSD_14default_deleteISH_EEEENSD_9allocatorISK_EEEEPNSD_12basic_stringIcNSD_11char_traitsIc

0x003f50c0 2144 _ZN3art6mirror8DexCache4InitEPKNS_7DexFileENS_6ObjPtrINS0_6StringEEEPNSt3__16atomicINS0_12DexCachePairIS6_EEEEjPNS9_INSA_INS0_5ClassEEEEEjPNS9_INS0_18NativeDexCachePairINS_9ArtMethodEEEEEjPNS9_INSI_INS_8ArtFieldEEEEEjPNS9_INSA_INS0_10MethodTypeEEEEEjPNS_

0x00521ec8 2436 _ZN3art8verifier13ClassVerifier11VerifyClassEPNS_6ThreadEPKNS_7DexFileENS_6HandleINS_6mirror8DexCacheEEENS7_INS8_11ClassLoaderEEERKNS_3dex8ClassDefEPNS_17CompilerCallbacksEbNS0_15HardFailLogModeEjPNSt3__112basic_stringIcNSK_11char_traitsIcEENSK_9allocato

0x00523154 124 _ZN3art8verifier14MethodVerifier12VerifyMethodEPNS_6ThreadEjPKNS_7DexFileENS_6HandleINS_6mirror8DexCacheEEENS7_INS8_11ClassLoaderEEERKNS_3dex8ClassDefEPKNSD_8CodeItemEPNS_9ArtMethodEjPNS_17CompilerCallbacksEbNS0_15HardFailLogModeEbjPNSt3__112basic_string

[0x0012d000]> iEq~+vdex

0x0051f934 24 art::VdexFile::VerifierDepsHeader::HasDexSection() const

0x0051f8e8 24 art::VdexFile::VerifierDepsHeader::IsVerifierDepsVersionValid() const

0x0044aef4 16 art::OatDexFile::IsBackedByVdexOnly() const

0x00520b48 8 art::VdexFile::GetQuickeningInfoTableOffset(unsigned char const*) const

0x0052022c 432 art::VdexFile::OpenAllDexFiles(std::__1::vector<:__1::unique_ptr const std::__1::default_delete> >, std::__1::allocator<:__1::unique_ptr const std::__1::default_delete> > > >*, std::__1::basic_string, std::__1::allocator >*)

0x0051f900 52 art::VdexFile::VerifierDepsHeader::IsDexSectionVersionValid() const

0x00520b88 616 art::VdexFile::GetQuickenedInfoOf(art::DexFile const&, unsigned int) const

0x00520b50 20 art::VdexFile::GetQuickenInfoOffsetTable(unsigned char const*, art::ArrayRef const&) const

0x005213d8 420 art::VdexFile::MatchesDexFileChecksums(std::__1::vector<:dexfile::header const std::__1::allocator> > const&) const

0x00448988 432 art::ElfOatFile::InitializeFromElfFile(int, art::ElfFile*, art::VdexFile*, char const*, std::__1::basic_string, std::__1::allocator >*)

0x005204e4 124 art::VdexFile::GetNextDexFileData(unsigned char const*) const

0x0051f990 12 art::VdexFile::DexSectionHeader::DexSectionHeader(unsigned int, unsigned int, unsigned int)

0x004455a4 412 art::OatFileBase::LoadVdex(int, std::__1::basic_string, std::__1::allocator > const&, bool, bool, std::__1::basic_string, std::__1::allocator >*)

0x0051f94c 68 art::VdexFile::VerifierDepsHeader::VerifierDepsHeader(unsigned int, unsigned int, bool, unsigned int, unsigned int)

0x00451908 784 art::OatFileAssistant::AnonymousDexVdexLocation(std::__1::vector<:dexfile::header const std::__1::allocator> > const&, art::InstructionSet, unsigned int*, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*)

0x00445444 352 art::OatFileBase::LoadVdex(std::__1::basic_string, std::__1::allocator > const&, bool, bool, std::__1::basic_string, std::__1::allocator >*)

0x0051fc54 1496 art::VdexFile::OpenAtAddress(unsigned char*, unsigned long, bool, int, unsigned long, std::__1::basic_string, std::__1::allocator > const&, bool, bool, bool, std::__1::basic_string, std::__1::allocator >*)

0x0051f99c 696 art::VdexFile::OpenAtAddress(unsigned char*, unsigned long, bool, std::__1::basic_string, std::__1::allocator > const&, bool, bool, bool, std::__1::basic_string, std::__1::allocator >*)

0x00520b64 24 art::VdexFile::GetQuickenInfoOffsetTable(art::DexFile const&, art::ArrayRef const&) const

0x00448fb8 172 art::OatFile::OpenWithElfFile(int, art::ElfFile*, art::VdexFile*, std::__1::basic_string, std::__1::allocator > const&, char const*, std::__1::basic_string, std::__1::allocator >*)

0x0051f990 12 art::VdexFile::DexSectionHeader::DexSectionHeader(unsigned int, unsigned int, unsigned int)

0x0051f8d0 24 art::VdexFile::VerifierDepsHeader::IsMagicValid() const

0x005203dc 264 art::VdexFile::Unquicken(std::__1::vector<:dexfile const std::__1::allocator> > const&, bool) const

0x00451c18 240 art::OatFileAssistant::IsAnonymousVdexBasename(std::__1::basic_string, std::__1::allocator > const&)

0x0052157c 704 art::VdexFile::MatchesBootClassPathChecksums() const

0x0052183c 612 art::VdexFile::MatchesClassLoaderContext(art::ClassLoaderContext const&) const

0x00520df0 856 art::VdexFile::WriteToDisk(std::__1::basic_string, std::__1::allocator > const&, std::__1::vector<:dexfile const std::__1::allocator> > const&, art::verifier::VerifierDeps const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator >*)

0x00520560 1512 art::VdexFile::UnquickenDexFile(art::DexFile const&, unsigned char const*, bool) const

0x0051f94c 68 art::VdexFile::VerifierDepsHeader::VerifierDepsHeader(unsigned int, unsigned int, bool, unsigned int, unsigned int)

0x00520b7c 12 art::VdexFile::UnquickenDexFile(art::DexFile const&, art::DexFile const&, bool) const

0x00449950 272 art::OatFile::OpenFromVdex(std::__1::vector<:dexfile const std::__1::allocator> > const&, std::__1::unique_ptr<:vdexfile std::__1::default_delete> >&&, std::__1::basic_string, std::__1::allocator > const&)

0x00450c5c 540 art::OatFileAssistant::DexChecksumUpToDate(art::VdexFile const&, std::__1::basic_string, std::__1::allocator >*)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值