Open mingchen opened 8 years ago
I came across this change to the linker, which I suspect might be the cause for the injector not working on Android 6.0:
https://android.googlesource.com/platform/bionic/+/d88e1f350111b3dfd71c6492321f0503cb5540db
Basically, dlopen no longer returns a pointer to the soinfo struct, but a handle id instead. So unless we can figure out another way of getting at the soinfo struct, we're out of luck!
I have the same issue
@sir-earl Yes, you right, I've recompiled the linker with below changes: void soinfo::to_handle() { // if (get_application_target_sdk_version() < ANDROID_API_N || !has_min_version(3)) { return this; // } //return reinterpret_cast<void>(get_handle()); } And it fixed the issue.
@sir-earl Yes, you right, I've recompiled the linker with below changes: void soinfo::to_handle() { // if (get_application_target_sdk_version() < ANDROID_API_N || !has_min_version(3)) { return this; // } //return reinterpret_cast<void>(get_handle()); } And it fixed the issue.
To which file did you make the changes?
I can't find the linker itself. Only the linker.h
@GurTelem
To which file did you make the changes? I can't find the linker itself. Only the
linker.h
That was the linker binary from [AOSP]:(http://androidxref.com/8.1.0_r33/xref/bionic/linker/linker_soinfo.cpp)
Yeah, that is defenitely not the universal solution, but it worked for my case.
make test lunch Chrom with a blank screen with following output: