Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: Symbol resolution for /linker in Android 15 #63

Open
3 tasks done
JingMatrix opened this issue Oct 20, 2024 · 5 comments · May be fixed by #93
Open
3 tasks done

[BUG]: Symbol resolution for /linker in Android 15 #63

JingMatrix opened this issue Oct 20, 2024 · 5 comments · May be fixed by #93
Assignees
Labels
bug Something isn't working confirmed This issue or pull request is confirmed to be done.

Comments

@JingMatrix
Copy link
Contributor

Version

v1.0.0 (234-f1ba34f-debug)

Modules

Zygisk - LSPosed by JingMatrix v1.10.1 (7118)

Description

In Android 15, the symbols __dl__ZL6solist, __dl__ZL6somain and __dl__ZL4vdso are no longer present, so that SoList::Initialize() always fails.

Indeed they are replaced by names like __dl__ZL6solist.llvm.7690929523238822858 and so on.

I update the readelf output of linker64 binary as evidence
linker_readelf.txt

Steps to reproduce

  1. Use Android 15
  2. Install a debug version of LSPosed
  3. See entries like [ 2024-10-19T20:53:12.823 1000: 1586: 1586 E/zygisk-core64 ] Failed to initialize SoList

Logs

Here is the LSPosed log:
verbose_2024-10-19T20:53:12.156478.log

Confirmations

  • My environment meets the minimum requirements.
  • I have verified that this is not a duplicate issue.

Code of Conduct

  • I agree to follow this project's Code of Conduct
@JingMatrix JingMatrix added bug Something isn't working not confirmed This issue or pull request is not confirmed to be done. labels Oct 20, 2024
@ThePedroo
Copy link
Member

The best approach would be completely removing SO list hiding as it's just more of a workaround to a bigger problem, I'll investigate to see the next step. Thank you.

@ThePedroo ThePedroo added confirmed This issue or pull request is confirmed to be done. and removed not confirmed This issue or pull request is not confirmed to be done. labels Oct 20, 2024
@ThePedroo ThePedroo self-assigned this Oct 20, 2024
@JingMatrix
Copy link
Contributor Author

JingMatrix commented Nov 23, 2024

You commit 5b5c2f has fixed the issue. Here are the logs for your information:
verbose_2024-11-23T20:18:52.740303.log.

ThePedroo added a commit that referenced this issue Nov 25, 2024
This commit improves how the symbols like solist are searched. This allows to phones that have linker64 with symbols with llvm suffix to still have maps hiding.

closes #63
@ThePedroo ThePedroo linked a pull request Nov 25, 2024 that will close this issue
3 tasks
@ThePedroo
Copy link
Member

I may add that there are Android 15 devices that seem to not have that llvm sufix, however the made PR should fix in any case.

@JingMatrix
Copy link
Contributor Author

JingMatrix commented Nov 26, 2024

Solist hiding is surely needed. Current method using nullify_path can still be detected, because empty pathname is simply too strange.

We should drop those libraries in the SoList

@JingMatrix JingMatrix changed the title [BUG]: Map hidding for /linker in Android 15 [BUG]: Symbol resolution for /linker in Android 15 Nov 26, 2024
@JingMatrix
Copy link
Contributor Author

Alternatively, one could use __dl__Z20solist_remove_soinfoP6soinfo function to remove soinfo from the linked list.
See linker_main.cpp.

@JingMatrix JingMatrix mentioned this issue Nov 29, 2024
3 tasks
JingMatrix added a commit to JingMatrix/ReZygisk that referenced this issue Nov 29, 2024
On Android 15+ in some devices, the symbol names of some static variables such as `solist`, has a `llvm` suffix in its exported name.
Current commit handles this case and close PerformanC#63 as fixed.

Co-authored-by: ThePedroo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working confirmed This issue or pull request is confirmed to be done.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants