Giter Club home page Giter Club logo

Comments (11)

niclimcy avatar niclimcy commented on July 19, 2024

Also, copying tweak resource bundles to app's root does not seem to be working properly atm https://github.com/Al4ise/Azule/blob/main/azule#L350

EDIT:
For this case, verbose says that it has been copied to app root but the *.bundle does not exist when I extracted and checked the output.ipa

EDIT2:

azule -v -n tempblock -i ~/BetterCercube/YouTube.ipa -o ~/BetterCercube -f ~/BetterCercube/com.galacticdev.isponsorblock_1.0-11_iphoneos-arm.deb
Path to IPA is /Users/nick/BetterCercube/YouTube.ipa
Output Name is tempblock
Output Directory is /Users/nick/BetterCercube/
Work directories have been created
IPA extracted
com.galacticdev.isponsorblock_1.0-11_iphoneos-arm.deb extracted
Injected iSponsorBlock.dylib
Copied com.galacticdev.isponsorblock.bundle to app directory
Copied CydiaSubstrate.framework to app directory
Codesign stripped from iSponsorBlock.dylib
Re-linked Payload/YouTube.app/Frameworks/iSponsorBlock.dylib to @rpath/iSponsorBlock.dylib in iSponsorBlock.dylib
Re-linked /Library/MobileSubstrate/DynamicLibraries/iSponsorBlock.dylib to @rpath/iSponsorBlock.dylib in iSponsorBlock.dylib
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in iSponsorBlock.dylib
Re-linked Payload/YouTube.app/Frameworks/iSponsorBlock.dylib to @rpath/iSponsorBlock.dylib in iSponsorBlock.dylib
Re-linked /Library/MobileSubstrate/DynamicLibraries/iSponsorBlock.dylib to @rpath/iSponsorBlock.dylib in iSponsorBlock.dylib
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in iSponsorBlock.dylib
Codesign stripped from CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Removed UISupportedDevices from app
Generated IPA at /Users/nick/BetterCercube/tempblock.ipa
Cleaned up

from azule.

niclimcy avatar niclimcy commented on July 19, 2024

On an additional sidenote, it seems likes the latest code refactor broke custom *.framework support.

It seems like the relink failed somewhere:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Description: DYLD, Library not loaded: /Library/Frameworks/Alderis.framework/Alderis
| Referenced from: /private/var/containers/Bundle/Application/BE4F94E4-B610-4A3E-A0FE-35995679B515/YouTube.app/Frameworks/libcolorpicker.dylib
| Reason: tried: '/Library/Frameworks/Alderis.framework/Alderis' (no such file),
'/System/Library/Frameworks/Alderis.framework/Alderis' (no such file)
Triggered by Thread:  0
azule -v -n tempcolor -i ~/BetterCercube/YouTube.ipa -o ~/BetterCercube -f ~/BetterCercube/ws.hbang.alderis_1.1.2_iphoneos-arm.deb -d libcolorpicker.dylib
Path to IPA is /Users/nick/BetterCercube/YouTube.ipa
Output Name is tempcolor
Output Directory is /Users/nick/BetterCercube/
Work directories have been created
IPA extracted
ws.hbang.alderis_1.1.2_iphoneos-arm.deb extracted
Injected libcolorpicker.dylib
Copied CydiaSubstrate.framework to app directory
Copied Alderis.framework to app directory
Codesign stripped from libcolorpicker.dylib
Re-linked Payload/YouTube.app/Frameworks/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked /usr/lib/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked Payload/YouTube.app/Frameworks/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked /usr/lib/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Codesign stripped from CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Removed UISupportedDevices from app
Generated IPA at /Users/nick/BetterCercube/tempcolor.ipa
Cleaned up

from azule.

Al4ise avatar Al4ise commented on July 19, 2024

I think I fixed your first 2 issues in the newest experimental build, but I'm not quite sure about the third one. Could you please check if everything works as intended?

from azule.

niclimcy avatar niclimcy commented on July 19, 2024

I think the 3rd issue happens during the Re-link stage. It keeps re linking CydiaSubstrate.framework when it should have moved on to the next instance of *.framework

from azule.

niclimcy avatar niclimcy commented on July 19, 2024
Re-linked Payload/YouTube.app/Frameworks/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked /usr/lib/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked /Library/Frameworks/Alderis.framework/Alderis to @rpath/Alderis.framework/Alderis in libcolorpicker.dylib
Re-linked Payload/YouTube.app/Frameworks/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked /usr/lib/libcolorpicker.dylib to @rpath/libcolorpicker.dylib in libcolorpicker.dylib
Re-linked /Library/Frameworks/Alderis.framework/Alderis to @rpath/Alderis.framework/Alderis in libcolorpicker.dylib
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate to @rpath/CydiaSubstrate.framework/CydiaSubstrate in CydiaSubstrate.framework/CydiaSubstrate
Re-linked Payload/YouTube.app/Frameworks/Alderis.framework/Alderis to @rpath/Alderis.framework/Alderis in Alderis.framework/Alderis
Re-linked /Library/Frameworks/Alderis.framework/Alderis to @rpath/Alderis.framework/Alderis in Alderis.framework/Alderis
Re-linked Payload/YouTube.app/Frameworks/Alderis.framework/Alderis to @rpath/Alderis.framework/Alderis in Alderis.framework/Alderis
Re-linked /Library/Frameworks/Alderis.framework/Alderis to @rpath/Alderis.framework/Alderis in Alderis.framework/Alderis

This should have been the correct output before the code refactor

EDIT further investigation with otool

After refactor:

nick@Mac-Mini BetterCercube % otool -L Payload/YouTube.app/Frameworks/libcolorpicker.dylib
Payload/YouTube.app/Frameworks/libcolorpicker.dylib (architecture arm64):
	/Library/Frameworks/Alderis.framework/Alderis (compatibility version 1.0.0, current version 1.0.0)
	/Library/Frameworks/Alderis.framework/Alderis (compatibility version 1.0.0, current version 1.0.0)

Before refactor:

nick@Mac-Mini ~ % otool -L Payload/YouTube.app/Frameworks/libcolorpicker.dylib
Payload/YouTube.app/Frameworks/libcolorpicker.dylib (architecture arm64):
	@rpath/Alderis.framework/Alderis (compatibility version 1.0.0, current version 1.0.0)
	@rpath/Alderis.framework/Alderis (compatibility version 1.0.0, current version 1.0.0)

from azule.

niclimcy avatar niclimcy commented on July 19, 2024

https://github.com/Al4ise/Azule/blob/main/azule#L323

One more path to look for:

        elif [[ "$i" =~ "$dir/$tweakname/Tweak/Library/MobileSubstrate/DynamicLibraries/" ]]; then
            inject+=( "$(basename "$i")" )
        else

from azule.

Al4ise avatar Al4ise commented on July 19, 2024

Okay I fixed the frameworks issue. And about the "one more path to look at," Azule already checks the dylibs is DynamcLibraries and automatically determines whether you need them or not

from azule.

niclimcy avatar niclimcy commented on July 19, 2024

Okay I fixed the frameworks issue. And about the "one more path to look at," Azule already checks the dylibs is DynamcLibraries and automatically determines whether you need them or not

From my understanding here: https://github.com/Al4ise/Azule/blob/main/azule#L326
It checks where the bundleid of a tweak matches the main bundle id of the app.

There is an edge case where tweaks do not specify the bundle id of the app they are targeting.
For example this is what I have extracted from a tweak package:
bplist00Ñ��VFilterÑ��[Executables£���YInstagramXWhatsAppWYouTube����!%/8�������������������������������@

from azule.

Al4ise avatar Al4ise commented on July 19, 2024

Which tweak is that?

from azule.

Al4ise avatar Al4ise commented on July 19, 2024

the latest build should fix that

from azule.

niclimcy avatar niclimcy commented on July 19, 2024

Thank you! All works fine now

from azule.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.