opa334 / AltList

A modern AppList alternative
MIT License
111 stars 27 forks source link

Bootloop on iOS 15.x.y with Dopamine #30

Closed jontelang closed 1 year ago

jontelang commented 1 year ago

Hello. I believe there is something in AltList which bootloops devices on Dopamine jailbreak. I released an update of my tweak which more or less only replaced AppList with AltList and this happened for some people. Not all though.

Example of bootloop'd devices:

I tried to remove AltList and replace it with eg. "LSApplicationWorkspace allApplications" and that worked.

I went a bit further and prepared a build which has only this code:

#import <AltList/LSApplicationProxy+AltList.h>
%ctor {
    NSArray<LSApplicationProxy*>* a = [[LSApplicationWorkspace defaultWorkspace] atl_allInstalledApplications];
}

This also bootloops the device. I mean it doesn't invoke safe mode like a normal crash.

I installed AltList as the README.md says (except I can't do the "include <AltList/AltList.h>" like another issue mentions).

opa334 commented 1 year ago

That's not a bootloop, that more sounds like a respring loop.

Anyhow, your issue is likely that you did not make your tweak properly link against the AltList framework, therefore the method does not exist and the process crashes. Make sure you add in your Makefile under EXTRA_FRAMEWORKS.

For reference, running otool -L <path> on your tweak should have @rpath/AltList.framework/AltList in the list of linked images.

jontelang commented 1 year ago

Ah, yes a respring loop then. The library is linked properly.

A common thread among reporters was the tweak "whoozitpro" (caller ID tweak), although installing it myself did not cause the issue, and I think I got some messages that they had it and no respring loops occurred as well.

In the end, as I was not able to properly debug this, I removed AltList and included only the specific code I needed (name, check if hidden, and the tag-function). This stopped respring loops for the users who tested it.

I think the issue can be closed though, I am not sure I have more time to investigate this. But at least we can be aware that there might be something up.


I am not sure if this is relevant, but at one point I got a respring loop on my device. And I think it was when I had brought over the categories. But I had added "allApplications" instead of "atl_allApplications". So both my category, and the original LSApplicationWorkspace had the same method. Not sure if that's ok in Objective C or it caused that issue.

opa334 commented 1 year ago

You need to use a different prefix in your project, do not use atl_allApplications, change the atl

jontelang commented 1 year ago

Yeah I did change that, just didn't change it in the comment.