Open
Conversation
If we are using the PathClassLoader with a BootClassLoader parent, we can handle the common case in the FindClass function without needing to go back to java code. Around 10% speedup measured of maps launch, could be noise due to large variation of app launch times. Eliminates defineClassNative from being anywhere near the top of sampling profiles. Bug: 17397179 Bug: 16828525 Change-Id: Ide0db2b5f6cf5b96fc46e89178e0799de667cb88
Problem is that MAP_32BIT simulation can take seconds on large object allocations in the worst case. Bug: 17414549 Change-Id: I463bb0b728eed14847a32a27a93640ec6080f6b3
Bug: 17428908 Change-Id: Id74a0383fdae6753558e27cd447c1ca349819c91
Bug: 16861075 Change-Id: I577a0c7ede919e610c356e7c40dd60d87914dd3a
Do not blow up when in GetHashBucket if GetHashBucketNum is zero. Instead back-step to ElfFileOpen, which prints which symbol was missing from which file. Bug: 17422404 Change-Id: I3b890dd1c31c08b1ccc0f7f668afcceee95f8d00
We cannot add any object in the JDWP object registry while holding the Locks::thread_list_lock. Indeed we may need to suspend a thread and take it, causing a deadlock by waiting for ourself on this lock. Bug: 17343664 Change-Id: I2335c63e418c0d485daf2c35f8debcd52f943140
Problem is that MAP_32BIT simulation can take seconds on large object allocations in the worst case. Bug: 17414549 Change-Id: I463bb0b728eed14847a32a27a93640ec6080f6b3
Avoids issues with concurrency. Bug: 17439227 Change-Id: I4a5956d9f26fad416a244216c2c77d5e6f072c62
The reference intrinsic was incorrectly inlining PhantomReference.get(). We now get around this by adding a layer of indirection. Reference.get() now calls getReferent() which is intrinsified and inlined. Requires: https://android-review.googlesource.com/#/c/107100/ Bug: 17429865 (cherry picked from commit cd48f2d) Change-Id: Ie91e70abf43cedf3c707c7bb8a5059e19d2a2577
Should fix the 056-const-string-jumbo test. Change-Id: I04d98dfd59003b964c1feee6eee31079f9f4a476
This function has a mix of arm and cfi directives. Since our unwinders can work with both, remove the arm directives and fix the cfi directives. Bug: 17392751 Change-Id: Ibd4859a4f0b8f2da751a0928a2f5f4afa3df7df8
Adds a missing call to ClassLinker::EnsureResolved to ensure we did link the class and retired the temp class (placeholder) before doing the resolution. Bug: 17435441 Change-Id: Ib1a7181d6e5e814ca9299d0504e739a2b69475ef
Adds a missing call to ClassLinker::EnsureResolved to ensure we did link the class and retired the temp class (placeholder) before doing the resolution. Bug: 17435441 Change-Id: Ib1a7181d6e5e814ca9299d0504e739a2b69475ef
If the reference file is created with a relative path the test will fail. (cherry picked from commit 61281dc) Change-Id: Ie82b9d381bd884111dfc91cc235b46ad9f3225be
Eagerly add canonical dex file locations to the OatFile's primary lookup map in Setup(). This moves the boot.oat work from every app startup to the zygote initialization. Since we always ended up initializing the canonical location map anyway due to the way that we're loading dex files, the lazy initialization didn't save anything. Clean up dex file name canonicalization to make sure we free() the memory returned by realpath() rather than using std::unique_ptr<> with the default deleter. Avoid some unnecessary duplicate OatDexFile lookups. Bug: 16828525 Bug: 17346103 (cherry picked from commit aa4497d) Change-Id: Icc4b14ebe903282ca91ce24e33a6d7c75dff991c
Bug: 16828525 Change-Id: I66756348b2aa50e41dacca59769b6810a91c73b0
…further stack overflow Bug: 17463118 Change-Id: Ic05b07803d2d3112e0b67064f380cd46ba9e293f
…::IsStatic semantics. Bug: 18485243 (cherry picked from commit be6fa5e) Change-Id: I6e4d8e7587f7e03288ce039471154c1e6ebc7d8a
In rare cases, the target method for invoke-virtual-quick cannot be resolved because the "this" reference is still NULL when certain code paths are followed. ART's method verifier doesn't seem to be able to detect that previous checks ensure that the statement is never reached without an object reference. It marks the method (and therefore the class) as invalid/rejected and therefore makes the complete class unusable at runtime. So far, this was only detected in class initializers, which aren't compiled anyway. The interpreter later checks for this != NULL and throws an exception in this case, so it's safe to ignore this error situation. Fixes rovo89/Xposed#42.
LG has encrypted a few apps with their DRM implementation. Those apps can usually not be loaded. Fortunately, the decryption takes place in a separate library called liblgalmond.so. Xposed now uses this library if available to check if a dex file (usually located in a ZIP archive) is encrypted, and if yes, triggers the in-place decryption of the file before initializing it. Fixes rovo89/Xposed#27.
This reverts commit 31df113. We! Ain't! LG! Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
This reverts commit bc8f91e. Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com> Conflicts: runtime/mirror/art_method.h
This reverts commit 31df113.
LG has encrypted a few apps with their DRM implementation. Those apps can usually not be loaded. Fortunately, the decryption takes place in a separate library called liblgalmond.so. Xposed now uses this library if available to check if a dex file (usually located in a ZIP archive) is encrypted, and if yes, triggers the in-place decryption of the file before initializing it. For precompiled/odex files, a different way of decrypting is required. Similar to dex files, the decryption can also be done on the fly when the file is loaded. Fixes rovo89/Xposed#27.
Xposed modifies the size of TypedArray objects to match those of XTypedArray objects in order to change the class of created objects later. This leads to issues when other apps create their own subclass of TypedArray with additional fields. When compiling the app, the compiler doesn't know that the TypedArray object will be a few bytes bigger, so the offsets of the additional fields differ between runtime and compile time. If the compiler optimizes the access to these fields by addressing them via their offsets, it will lead to crashes. Therefore, we can't allow this kind of optimization for subclasses of TypedArray. Fixes rovo89/Xposed#54.
…llipop Conflicts: runtime/dex_file.cc runtime/runtime.cc
Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
This reverts commit e16ffe92bf73907a377f0fc7049a715732d50df8.
to support String.clear()
This reverts commit 56b0fd7. Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
This reverts commit ed551ed. Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>
This reverts commit e1db521.
These were noticed while compiling for the host (with stricter checks). The practical impact should be pretty low. Requires a small change in libxposed_art.
Under certain circumstances, the register holding the "this" reference for an invoke-virtual-quick call might be null. This is usually guarded by an "if" check in the dex code, but the verifier doesn't analyse the code in such depth. It aborts because the method cannot be verified, which makes the whole class unusable. In such cases, we now check the debug information for type hints for the register. For now, this is limited to exact matches of the variable definition range - if really necessary, it could be relaxed to also considered the closest definition.
It seems to be an uncommon instruction, but it can easily be compiled. Cherry-picked from https://android-review.googlesource.com/#/c/123156/. Fixes rovo89/Xposed#60.
This is true for all those odex files in /system. However, there's a special case in Google Play Services where an odex file is generated on the device (for caching). This file becomes invalid when a new ROM is flashed, but when trying to recompile it, Xposed's modifications made it use odex file instead of the orignal APK as source. Fixes #15.
All files have to be recompiled for Xposed. Disabling this option avoids checking the system image, which is needed for Samsung ROMs.
This reverts commit b28a161. The watchdog timeout seems be too short for older devices, so disable the watchdog completely. Fixes rovo89/Xposed#67.
…llipop Conflicts: runtime/oat_file.cc
Fixes deadlock caused by acquirng the mutator lock while synchronizing on the daemon thread. Bug: 18739541 Change-Id: I925b8f0f3b58178da6eff17b9c073f655c39597b Conflicts: runtime/gc/heap.cc runtime/gc/heap.h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.