Skip to content

Samsung lollipop#8

Open
joopmeijer1984 wants to merge 9424 commits intotemasek:cm-11.0from
arter97:samsung-lollipop
Open

Samsung lollipop#8
joopmeijer1984 wants to merge 9424 commits intotemasek:cm-11.0from
arter97:samsung-lollipop

Conversation

@joopmeijer1984
Copy link

No description provided.

Mathieu Chartier and others added 30 commits September 8, 2014 23:01
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
bdcgoogle and others added 29 commits July 26, 2015 13:44
…::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
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>
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.
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
@joopmeijer1984 joopmeijer1984 changed the base branch from cm-13.0 to cm-11.0 November 21, 2016 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.