Support for iphoneos-arm64#687
Conversation
|
This will not resolve the issue of batch hooking and will continue to use the substrate API, however @Evelyneee plans to continue maintaining the substrate API in |
|
Fixed some teething issues with formatting as well as added support for bundles. I also updated vendor/lib to add rpath to more dependencies. |
|
👍 |
|
Currently this pull request will cause tweaks to not work on Xina jailbreak because of poorly written patches by him. Attempts have been made to reach out to resolve this issue by myself but all messages have been left on delivered. The specific issue is his use of manually patching the path instead of changing the relative path. |
|
Hiiiiii can we get this merged? |
|
There's something missing here, libraries (including Cydia Substrate and |
There is a matching pull request here to do this. |
|
Hmm, thanks, and what about libSandy? It doesn't seem to have a |
|
I included everything relevant in that PR, do you know where I could find the linker file for libSandy? |
|
I got it, seems like changing |
|
Actually, that works for This fixes it properly: diff --git a/makefiles/instance/framework.mk b/makefiles/instance/framework.mk
index ca0492b..8ab7e72 100644
--- a/makefiles/instance/framework.mk
+++ b/makefiles/instance/framework.mk
@@ -18,7 +18,7 @@ _LOCAL_APP_EXTENSION_SAFE := $(_THEOS_TRUE)
include $(THEOS_MAKE_PATH)/instance/shared/bundle.mk
# End Bundle Setup
-_THEOS_INTERNAL_LDFLAGS += -dynamiclib -install_name "$(LOCAL_INSTALL_PATH)/$(_LOCAL_INSTANCE_TARGET)"
+_THEOS_INTERNAL_LDFLAGS += -dynamiclib -install_name "@rpath/$(_LOCAL_INSTANCE_TARGET)"
ifeq ($(_THEOS_MAKE_PARALLEL_BUILDING), no)
internal-framework-all_:: $(_OBJ_DIR_STAMPS) shared-instance-bundle-all $(THEOS_OBJ_DIR)/$(_LOCAL_INSTANCE_TARGET)
diff --git a/makefiles/targets/_common/darwin_head.mk b/makefiles/targets/_common/darwin_head.mk
index f09bbd2..69e8039 100644
--- a/makefiles/targets/_common/darwin_head.mk
+++ b/makefiles/targets/_common/darwin_head.mk
@@ -3,7 +3,7 @@ TARGET_EXE_EXT :=
TARGET_LIB_EXT := .dylib
TARGET_AR_EXT := .a
-TARGET_LDFLAGS_DYNAMICLIB = -dynamiclib -install_name "$(LOCAL_INSTALL_PATH)/$(1)"
+TARGET_LDFLAGS_DYNAMICLIB = -dynamiclib -install_name "@rpath/$(1)"
TARGET_CFLAGS_DYNAMICLIB =
_THEOS_TARGET_SUPPORTS_BUNDLES := 1Something like this should probably be included in this PR, though this this has the potential to break if someone is using a custom install path that's not in rpath. |
the potential to break can be mitigated through adding the LOCAL_INSTALL_PATH to the lib search paths on link |
|
Merged in 87dca79 ✨ Please note: a breaking change from this PRTo make the logic more generic and able to support more packaging layout schemes in future, There are still some cases that we need to sort out, such as changing the install name of libraries/frameworks to use |
|
Why does it have both |
|
Shoot, good catch. Thanks, fixed in b1932c8. |
What does this implement/fix? Explain your changes.
This pull request adds the support for compiling with support for iphoneos-arm64 respecting the /var/jb prefix. By appending the make argument
ROOTLESS=1the build system will move everything in stage to /var/jb, orTHEOS_ROOTLESS_PREFIX. By using sed it will also change the architecture in the control file in the staging folder, so the original file is not modified. This pull request should be used alongside theos/lib#16 to ensure that frameworks will continue to resolve.Does this close any currently open issues?
Rootless support for Theos
Where has this been tested?
Operating System: macOS Ventura 13.2
Platform: macOS
Target Platform: iOS