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

Release version of LSPosed manager fails to detect LSPosed installed on GrapheneOS #206

Open
1 task done
ztmzzz opened this issue Feb 22, 2025 · 10 comments
Open
1 task done
Labels
bug Something isn't working

Comments

@ztmzzz
Copy link

ztmzzz commented Feb 22, 2025

Steps to reproduce/复现步骤

  1. Install release or debug build of the LSPosed-Zygisk module
  2. Install release version of LSPosed manager
  3. Install debug version of LSPosed manager

Expected behaviour/预期行为

Both versions of LSPosed manager work fine

Actual behaviour/实际行为

Only the debug version of LSPosed manager works fine

Xposed Module List/Xposed 模块列表

N/A

Root implementation/Root 方案

KernelSU v1.0.3

System Module List/系统模块列表

NeoZygisk-v1-0.0-233-ce4a658-debug

LSPosed version/LSPosed 版本

v1.10.1(7173)

Android version/Android 版本

GrapheneOS 2025021100

Version requirement/版本要求

Logs/日志

My operation is reboot, install and open the release version, install and open the debug version, export the log.

LSPosed_2025-02-22T20_31_43.397569.zip

@ztmzzz ztmzzz added the bug Something isn't working label Feb 22, 2025
@JingMatrix
Copy link
Owner

Build from WIP pull-request cannot sign the release version of manager properly due to GitHub security restriction.
Please try the build https://github.com/JingMatrix/LSPosed/actions/runs/13407453973/job/37449899254, which is from the master branch.

The release and debug versions should have different signatures. Hence, if you can install the debug version over yhe release version without problems, then you are not using a properly signed build.

@ztmzzz
Copy link
Author

ztmzzz commented Feb 22, 2025

I did use this build. I extracted manager.apk using adb shell su -c cp /data/adb/modules/zygisk_lsposed/manager.apk /data/local/tmp && adb pull /data/local/tmp/manager.apk. I saw that the signatures are the same.

# apksigner verify --print-certs release.apk
Signer #1 certificate DN: CN=MA Jianyu, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Signer #1 certificate SHA-256 digest: b10b03393e1f7df49a6dcd97cdb6478fb19cb5efd2024841be1129fd807697ed
Signer #1 certificate SHA-1 digest: c983ca336186b966a323286e4cc23ca17f5844e0
Signer #1 certificate MD5 digest: 9896047434733949e7a20005191c0e70
# apksigner verify --print-certs debug.apk
Signer #1 certificate DN: CN=MA Jianyu, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Signer #1 certificate SHA-256 digest: b10b03393e1f7df49a6dcd97cdb6478fb19cb5efd2024841be1129fd807697ed
Signer #1 certificate SHA-1 digest: c983ca336186b966a323286e4cc23ca17f5844e0
Signer #1 certificate MD5 digest: 9896047434733949e7a20005191c0e70
# sha256sum release.apk
e7196657ff69790d9ae88ea7dd66677f02201fe7f41faffec751c5a18d205f41  release.apk
# sha256sum debug.apk
0c625e3673ed8ff51e24ce6ff153a1dfae1cf685777310aa8fbf505a71372f9b  debug.apk

@JingMatrix
Copy link
Owner

That is fairly strange, I don't understand why the gradle plugin org.lsposed.lsplugin.apksign would sign the debug version of manager.apk as well.

This issue is hard to understand.

@ztmzzz
Copy link
Author

ztmzzz commented Feb 25, 2025

I thought a video would make it easier to explain.

record.mp4

@JingMatrix JingMatrix changed the title Only the debug version of LSPosed manager can work properly on GrapheneOS Release version of LSPosed manager fails to detect LSPosed installed on GrapheneOS Feb 25, 2025
@JingMatrix
Copy link
Owner

JingMatrix commented Feb 25, 2025

Yes, your video indeed clarifies the situation: the release version of manager fails to detect the installation of LSPosed.

@JingMatrix
Copy link
Owner

I am a bit confused from the logs. Please do the following to ensure two versions of managers have different logs in separated log files.

  1. flash the debug version of the latest CI build and reboot;
  2. install the debug version of manager, open the manager, clean the logs from the log panel using the three dots menu;
  3. install the release version of manager, try open the manger, and save a screenshot of its main panel;
  4. install again the debug version of manager, export the logs;
  5. upload your screenshot and the log archive.

@ztmzzz
Copy link
Author

ztmzzz commented Feb 26, 2025

@JingMatrix
Copy link
Owner

For the debug version, we have logs


[ 2025-02-26T19:48:47.245    10161:  4954:  4954 D/zygisk-core64   ] hook.cpp:142#int new_pthread_attr_setstacksize(void *, size_t): unmap libzygisk.so loaded at 0xd3953b465000 with size 790528
[ 2025-02-26T19:48:47.253    10161:  4954:  4954 V/LSPlant         ] instrumentation.cxx:45: skip update entrypoint on deoptimized method java.io.File android.app.ContextImpl.getSharedPreferencesPath(java.lang.String)
[ 2025-02-26T19:48:47.255    10161:  4954:  4954 D/LSPosed         ] ActivityThread#handleBindApplication() starts: pkg=null, prc=null
[ 2025-02-26T19:48:47.259    10161:  4954:  4954 V/LSPlant         ] class.cxx:53: Backup deoptimized method 0xd3944014c030 because of initialization
[ 2025-02-26T19:48:47.259    10161:  4954:  4954 V/LSPlant         ] class_linker.cxx:115: re-deoptimize for 0xd3944014c030
[ 2025-02-26T19:48:47.259    10161:  4954:  4954 V/LSPlant         ] class_linker.cxx:220: deoptimize method android.webkit.WebViewFactoryProvider android.webkit.WebViewFactory.getProvider() from 0xd3953859c9e0 to 0xd3953859c9e0
[ 2025-02-26T19:48:47.450    10161:  4954:  4954 D/LSPosed         ] LoadedApk getClassLoader dalvik.system.PathClassLoader[DexPathList[[zip file "/proc/self/fd/69"],nativeLibraryDirectories=[/data/app/~~hrSvwmStbSeQG6vyXd6ecA==/org.lsposed.manager-hgz2zAF2qYid2X8_VOz3ag==/lib/arm64, /system/lib64, /system_ext/lib64]]]: pkg=org.lsposed.manager, prc=org.lsposed.manager
[ 2025-02-26T19:48:47.483    10161:  4954:  4954 D/LSPosed         ] before install provider: pkg=org.lsposed.manager, prc=org.lsposed.manager
[ 2025-02-26T19:48:47.535    10161:  4954:  4954 D/LSPosed         ] loading state of org.lsposed.manager.ui.activity.MainActivity: pkg=org.lsposed.manager, prc=org.lsposed.manager

While for the release version, one has log

[ 2025-02-26T19:49:15.393    10164:  5229:  5229 D/zygisk-core64   ] hook.cpp:142#int new_pthread_attr_setstacksize(void *, size_t): unmap libzygisk.so loaded at 0xd3953b465000 with size 790528
[ 2025-02-26T19:49:15.415        0:  1220:  1353 D/LSPosedService  ] ProcessInfo{uid=10164, pid=5229, processName='org.lsposed.manager', heartBeat=android.os.BinderProxy@a352a8b} is dead

And only the release version triggers dex2oat optimization during the installation.

@JingMatrix
Copy link
Owner

It could be a problem of dex2oat problem.
Please record the following logs while installing the release version of manager,

adb logcat -s LSPosedDex2Oat dex2oat64 > dex2oat.log

and then upload dex2oat.log.

@ztmzzz
Copy link
Author

ztmzzz commented Feb 27, 2025

dex2oat.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants