From f274cf7664194772859045a738f99b7edd1813cd Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:17:25 -0700 Subject: [PATCH 1/7] Cleanup makefile and actions script --- .github/workflows/buildapp.yml | 59 ++++++++++++++++++++-------------- Makefile | 55 +++++++++++++++++-------------- 2 files changed, 64 insertions(+), 50 deletions(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 6fa43c0..457cf22 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -32,17 +32,17 @@ on: required: false type: string upload_artifact: - description: "Upload ipa as artifact" + description: "Upload iPA as artifact (Public)" default: true required: false type: boolean catbox_upload: - description: "Upload ipa to Catbox.moe" + description: "Upload iPA to Catbox.moe (URL)" default: false required: false type: boolean create_release: - description: "Create a draft release" + description: "Create a draft release (Private)" default: false required: false type: boolean @@ -60,7 +60,7 @@ jobs: steps: - name: Checkout Main - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4 with: path: main ref: ${{ github.event.inputs.commit_id || github.ref }} @@ -69,17 +69,17 @@ jobs: - name: Install Dependencies run: brew install ldid dpkg make - - name: Setup Theos - uses: actions/checkout@v4.1.7 + - name: Download Theos + uses: actions/checkout@v4 with: repository: theos/theos ref: 3da31488281ecf4394d10302d2629607f4a1aa07 path: theos submodules: recursive - - name: SDK Caching + - name: iOS SDK Caching id: SDK - uses: actions/cache@v4.0.2 + uses: actions/cache@v4 env: cache-name: iOS-${{ inputs.sdk_version }}-SDK with: @@ -90,6 +90,7 @@ jobs: - name: Download iOS SDK if: steps.SDK.outputs.cache-hit != 'true' run: | + # Only download the specific SDK version git clone -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/ cd sdks git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk @@ -98,52 +99,60 @@ jobs: env: THEOS: ${{ github.workspace }}/theos - - name: Setup Theos Jailed + - name: Download Theos Jailed uses: actions/checkout@v4.1.7 with: repository: qnblackcat/theos-jailed ref: master path: theos-jailed submodules: recursive - - - name: Set PATH environment variable - run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH - name: Install Theos Jailed run: | ./theos-jailed/install env: THEOS: ${{ github.workspace }}/theos + + - name: Fix Compiling + run: | + # Update GNU Make to allow for faster building + echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + (echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile) + source ~/.bash_profile - name: Prepare YouTube iPA run: | wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa unzip -q main/YouTube.ipa -d main/tmp echo "YT_VERSION=$(grep -A 1 'CFBundleVersion' main/tmp/Payload/YouTube.app/Info.plist | grep '' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV + # Get the version number of the latest release wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' main/tmp/release_page.html | head -n 1 | sed 's/\/tag\/v//') echo "YTLITE_VERSION=${YTLITE_VERSION}" >> $GITHUB_ENV echo $YTLITE_VERSION + # Remove contents in the iPA that interfere with sideloading rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources rm -rf main/tmp/Payload/YouTube.app/PlugIns/* - cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns env: THEOS: ${{ github.workspace }}/theos YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }} - - name: Fix Compiling & Build Package + - name: Build Package id: build_package run: | - (echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile) - source ~/.bash_profile cd ${{ github.workspace }}/main - sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile - sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + # Replace lines in Makefile based on inputs + sed -i '' "s/^BUNDLE_ID.*$/BUNDLE_ID = ${{ env.BUNDLE_ID }}/" Makefile + sed -i '' "s/^DISPLAY_NAME.*$/DISPLAY_NAME = ${{ env.APP_NAME }}/" Makefile sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile - sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:15.0#g" Makefile - make package FINALPACKAGE=1 - (mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa") - echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT + sed -i '' "s/^export TARGET.*$/export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0/" Makefile + # Build the package + make package + # Rename the package based on the version + (mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa") + # Pass package name to the upload step + echo "package=$(ls -t packages | head -n1)" >> $GITHUB_OUTPUT + # Print out the hash and bundle ID echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m" echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m" env: @@ -153,7 +162,7 @@ jobs: - name: Upload Artifact if: ${{ inputs.upload_artifact }} - uses: actions/upload-artifact@v4.3.3 + uses: actions/upload-artifact@v4 with: name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }} path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} @@ -175,10 +184,10 @@ jobs: sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \ main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md - - name: Create Release + - name: Create Draft Release if: ${{ inputs.create_release }} id: create_release - uses: softprops/action-gh-release@v2.0.6 + uses: softprops/action-gh-release@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/Makefile b/Makefile index 86f79c3..987a366 100644 --- a/Makefile +++ b/Makefile @@ -5,50 +5,55 @@ MODULES = jailed FINALPACKAGE = 1 CODESIGN_IPA = 0 PACKAGE_VERSION = X.X.X-X.X +REMOVE_EXTENSIONS = 1 +ROOTLESS = 1 TWEAK_NAME = YTLitePlus DISPLAY_NAME = YouTube BUNDLE_ID = com.google.ios.youtube +# Setup variables for YTLite download and install +YTLITE_PATH = Tweaks/YTLite +YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb +YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib +YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle +# Grab the YTLite version from the releases page on GitHub +YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') + +# Todo figure out the purpose of this EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks # Allow YouTubeHeader to be accessible using #include <...> export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks -YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib -YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) -YTLitePlus_IPA = ./tmp/Payload/YouTube.app -YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) -YTLitePlus_FRAMEWORKS = UIKit Security +# Fix Alderis maybe +export Alderis_XCODEOPTS = LD_DYLIB_INSTALL_NAME=@rpath/Alderis.framework/Alderis +export Alderis_XCODEFLAGS = DYLIB_INSTALL_NAME_BASE=/Library/Frameworks BUILD_LIBRARY_FOR_DISTRIBUTION=YES ARCHS="$(ARCHS)" + +$(TWEAK_NAME)_INJECT_DYLIBS = $(YTLITE_DEB) $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTHoldForSpeed.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouGroupSettings.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib +$(TWEAK_NAME)_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) +$(TWEAK_NAME)_IPA = ./tmp/Payload/YouTube.app +$(TWEAK_NAME)_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) +$(TWEAK_NAME)_FRAMEWORKS = UIKit Security include $(THEOS)/makefiles/common.mk include $(THEOS_MAKE_PATH)/tweak.mk SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings include $(THEOS_MAKE_PATH)/aggregate.mk -YTLITE_PATH = Tweaks/YTLite -YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') -YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb -YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib -YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle +# Fix Alderis framework path +$(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework + +$(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Tweaks/*/var/jb/Library/Application\ Support/*.bundle) $(wildcard Tweaks/*/layout/Library/Application\ Support/*.bundle) +$(TWEAK_NAME)_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex) + + + before-package:: - @echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m" - @mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; - @cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/ - @cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/ - @cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/ - @cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/ - @cp -R Tweaks/YTABConfig/layout/Library/Application\ Support/YTABC.bundle Resources/ - @cp -R Tweaks/YouMute/layout/Library/Application\ Support/YouMute.bundle Resources/ - @cp -R Tweaks/DontEatMyContent/layout/Library/Application\ Support/DontEatMyContent.bundle Resources/ - @cp -R Tweaks/YTHoldForSpeed/layout/Library/Application\ Support/YTHoldForSpeed.bundle Resources/ - @cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/ - @cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/ - @cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/ + @mkdir -p Resources/Frameworks/Alderis.framework && find $(THEOS_OBJ_DIR)/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; @cp -R lang/YTLitePlus.bundle Resources/ - @echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m" @ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib - @codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib + @codesign --remove-signature $(THEOS_OBJ_DIR)/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis $(THEOS_OBJ_DIR)/libcolorpicker.dylib internal-clean:: @rm -rf $(YTLITE_PATH)/* From 8c509c8ee80a681f5928845081b58fe9302a0ec7 Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Fri, 26 Jul 2024 22:54:19 -0700 Subject: [PATCH 2/7] Revert Makefile --- Makefile | 55 +++++++++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index 987a366..86f79c3 100644 --- a/Makefile +++ b/Makefile @@ -5,55 +5,50 @@ MODULES = jailed FINALPACKAGE = 1 CODESIGN_IPA = 0 PACKAGE_VERSION = X.X.X-X.X -REMOVE_EXTENSIONS = 1 -ROOTLESS = 1 TWEAK_NAME = YTLitePlus DISPLAY_NAME = YouTube BUNDLE_ID = com.google.ios.youtube -# Setup variables for YTLite download and install -YTLITE_PATH = Tweaks/YTLite -YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb -YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib -YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle -# Grab the YTLite version from the releases page on GitHub -YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') - -# Todo figure out the purpose of this EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks # Allow YouTubeHeader to be accessible using #include <...> export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks -# Fix Alderis maybe -export Alderis_XCODEOPTS = LD_DYLIB_INSTALL_NAME=@rpath/Alderis.framework/Alderis -export Alderis_XCODEFLAGS = DYLIB_INSTALL_NAME_BASE=/Library/Frameworks BUILD_LIBRARY_FOR_DISTRIBUTION=YES ARCHS="$(ARCHS)" - -$(TWEAK_NAME)_INJECT_DYLIBS = $(YTLITE_DEB) $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTHoldForSpeed.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouGroupSettings.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib -$(TWEAK_NAME)_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) -$(TWEAK_NAME)_IPA = ./tmp/Payload/YouTube.app -$(TWEAK_NAME)_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) -$(TWEAK_NAME)_FRAMEWORKS = UIKit Security +YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib +YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) +YTLitePlus_IPA = ./tmp/Payload/YouTube.app +YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) +YTLitePlus_FRAMEWORKS = UIKit Security include $(THEOS)/makefiles/common.mk include $(THEOS_MAKE_PATH)/tweak.mk SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings include $(THEOS_MAKE_PATH)/aggregate.mk -# Fix Alderis framework path -$(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework - -$(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Tweaks/*/var/jb/Library/Application\ Support/*.bundle) $(wildcard Tweaks/*/layout/Library/Application\ Support/*.bundle) -$(TWEAK_NAME)_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex) - - - +YTLITE_PATH = Tweaks/YTLite +YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') +YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb +YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib +YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle before-package:: - @mkdir -p Resources/Frameworks/Alderis.framework && find $(THEOS_OBJ_DIR)/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; + @echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m" + @mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; + @cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/ + @cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/ + @cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/ + @cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/ + @cp -R Tweaks/YTABConfig/layout/Library/Application\ Support/YTABC.bundle Resources/ + @cp -R Tweaks/YouMute/layout/Library/Application\ Support/YouMute.bundle Resources/ + @cp -R Tweaks/DontEatMyContent/layout/Library/Application\ Support/DontEatMyContent.bundle Resources/ + @cp -R Tweaks/YTHoldForSpeed/layout/Library/Application\ Support/YTHoldForSpeed.bundle Resources/ + @cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/ + @cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/ + @cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/ @cp -R lang/YTLitePlus.bundle Resources/ + @echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m" @ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib - @codesign --remove-signature $(THEOS_OBJ_DIR)/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis $(THEOS_OBJ_DIR)/libcolorpicker.dylib + @codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib internal-clean:: @rm -rf $(YTLITE_PATH)/* From 665abdd65ac4bd27c187f891a0d64fb7e2aa76b3 Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Sat, 27 Jul 2024 00:50:00 -0700 Subject: [PATCH 3/7] Add job summary --- .github/workflows/buildapp.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 457cf22..f88502f 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -122,8 +122,10 @@ jobs: - name: Prepare YouTube iPA run: | + # Download and unzip iPA wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa unzip -q main/YouTube.ipa -d main/tmp + # Get the version number of the YouTube app and store it echo "YT_VERSION=$(grep -A 1 'CFBundleVersion' main/tmp/Payload/YouTube.app/Info.plist | grep '' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV # Get the version number of the latest release wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html @@ -175,7 +177,9 @@ jobs: CATBOX_URL=$(echo $RESPONSE | grep -o -E 'https://files.catbox.moe/[^"]*') echo "Uploaded artifact to $CATBOX_URL" CATBOX_FILE=$(echo $CATBOX_URL | sed 's|https://files.catbox.moe/||') + # Pass Catbox URL to the release steps echo "CATBOX_FILE=$CATBOX_FILE" >> $GITHUB_ENV + echo "CATBOX_URL=$CATBOX_URL" >> $GITHUB_ENV - name: Prepare Release Notes if: ${{ inputs.create_release }} @@ -206,3 +210,30 @@ jobs: --data-raw '{ "event_type": "update-altstore-source-trigger" }' + + - name: Job Summary + run: | + echo -e '### ๐Ÿ“บ Build Complete' >> $GITHUB_STEP_SUMMARY + + - name: Job Summary - Artifact Upload + if: ${{ inputs.upload_artifact }} + run: | + echo -e '### ๐Ÿ“ฆ Artifact Upload\n\nThe artifact was uploaded successfully! [Scroll down](#artifacts) to view the artifact. Note that you must be signed in to GitHub to download it.' >> $GITHUB_STEP_SUMMARY + + - name: Job Summary - Catbox Upload + if: ${{ inputs.catbox_upload}} + run: | + echo -e '### ๐Ÿฑ Catbox Upload\n\nThe Catbox upload was successful! Here is a permanent shareable link: '$CATBOX_URL >> $GITHUB_STEP_SUMMARY + + - name: Job Summary - Draft Release + if: ${{ inputs.create_release }} + run: | + REPO_URL="https://github.com/${{ github.repository }}" + RELEASES_URL="$REPO_URL/releases" + echo -e '### ๐Ÿš€ Draft Release\n\nThe release draft has been created successfully! You can view your releases here: '$RELEASES_URL >> $GITHUB_STEP_SUMMARY + + - name: Job Summary - Link to remove GitHub Action runs + run: | + REPO_URL="https://github.com/${{ github.repository }}" + DELETE_RUNS_URL="$REPO_URL/actions/workflows/delete-workflow-runs.yml" + echo -e '### ๐Ÿงน Cleanup\n\nYou can remove previous GitHub Action runs here: '$DELETE_RUNS_URL >> $GITHUB_STEP_SUMMARY From 911425b9eb0907d9fe2e4d873d1bf54c12f9ebb7 Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Fri, 26 Jul 2024 23:50:16 -0700 Subject: [PATCH 4/7] Add code to remove UISupportedDevices --- .github/workflows/buildapp.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index f88502f..358f3b5 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -135,6 +135,22 @@ jobs: # Remove contents in the iPA that interfere with sideloading rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources rm -rf main/tmp/Payload/YouTube.app/PlugIns/* + # Modify Info.plist to remove UISupportedDevices (Python script) + python - < Date: Fri, 26 Jul 2024 23:58:07 -0700 Subject: [PATCH 5/7] Revert Revert Makefile but it works plz --- .github/workflows/buildapp.yml | 6 +--- .github/workflows/delete-workflow-runs.yml | 9 +++-- Makefile | 42 +++++++++++----------- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 358f3b5..2c9c164 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -47,10 +47,6 @@ on: required: false type: boolean -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - jobs: build: name: Build YTLitePlus @@ -234,7 +230,7 @@ jobs: - name: Job Summary - Artifact Upload if: ${{ inputs.upload_artifact }} run: | - echo -e '### ๐Ÿ“ฆ Artifact Upload\n\nThe artifact was uploaded successfully! [Scroll down](#artifacts) to view the artifact. Note that you must be signed in to GitHub to download it.' >> $GITHUB_STEP_SUMMARY + echo -e '### ๐Ÿ“ฆ Artifact Upload\n\nThe artifact was uploaded successfully! Refresh and [scroll down](#artifacts) to view the artifact. Note that you must be signed in to GitHub to download it.' >> $GITHUB_STEP_SUMMARY - name: Job Summary - Catbox Upload if: ${{ inputs.catbox_upload}} diff --git a/.github/workflows/delete-workflow-runs.yml b/.github/workflows/delete-workflow-runs.yml index c865eef..302d8d7 100644 --- a/.github/workflows/delete-workflow-runs.yml +++ b/.github/workflows/delete-workflow-runs.yml @@ -1,3 +1,5 @@ +# This is based on the example at https://github.com/marketplace/actions/delete-workflow-runs + name: Delete old workflow runs on: workflow_dispatch: @@ -5,15 +7,15 @@ on: days: description: 'Days-worth of runs to keep for each workflow' required: true - default: '7' # default value is "30" + default: '0' minimum_runs: description: 'Minimum runs to keep for each workflow' required: true - default: '5' # default value is "6" + default: '0' delete_workflow_pattern: description: 'Name or filename of the workflow (if not set, all workflows are targeted)' required: false - default: 'Build and Release YTLitePlus' # default value is "" + default: 'Build and Release YTLitePlus' delete_workflow_by_state_pattern: description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually' required: true @@ -40,6 +42,7 @@ on: - success dry_run: description: 'Logs simulated changes, no deletions are performed' + type: boolean required: false jobs: diff --git a/Makefile b/Makefile index 86f79c3..def4c92 100644 --- a/Makefile +++ b/Makefile @@ -10,45 +10,43 @@ TWEAK_NAME = YTLitePlus DISPLAY_NAME = YouTube BUNDLE_ID = com.google.ios.youtube +# Setup variables for YTLite download and install +YTLITE_PATH = Tweaks/YTLite +# Grab the YTLite version from the releases page on GitHub +YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') +YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb +YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib +YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle + +# Todo figure out the purpose of this EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks # Allow YouTubeHeader to be accessible using #include <...> export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks -YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib -YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) -YTLitePlus_IPA = ./tmp/Payload/YouTube.app -YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) -YTLitePlus_FRAMEWORKS = UIKit Security +$(TWEAK_NAME)_INJECT_DYLIBS = $(YTLITE_DYLIB) $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTHoldForSpeed.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouGroupSettings.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib +$(TWEAK_NAME)_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) +$(TWEAK_NAME)_IPA = ./tmp/Payload/YouTube.app +$(TWEAK_NAME)_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) +$(TWEAK_NAME)_FRAMEWORKS = UIKit Security include $(THEOS)/makefiles/common.mk include $(THEOS_MAKE_PATH)/tweak.mk SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings include $(THEOS_MAKE_PATH)/aggregate.mk -YTLITE_PATH = Tweaks/YTLite -YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') -YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb -YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib -YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle +# Embed bundles and extensions +$(TWEAK_NAME)_BUNDLE_RESOURCE_DIRS = $(wildcard Tweaks/*/var/jb/Library/Application\ Support/*.bundle) $(wildcard Tweaks/*/layout/Library/Application\ Support/*.bundle) + + before-package:: @echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m" - @mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; + @mkdir -p Resources/Frameworks/Alderis.framework && find $(THEOS_OBJ_DIR)/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; @cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/ - @cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/ - @cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/ - @cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/ - @cp -R Tweaks/YTABConfig/layout/Library/Application\ Support/YTABC.bundle Resources/ - @cp -R Tweaks/YouMute/layout/Library/Application\ Support/YouMute.bundle Resources/ - @cp -R Tweaks/DontEatMyContent/layout/Library/Application\ Support/DontEatMyContent.bundle Resources/ - @cp -R Tweaks/YTHoldForSpeed/layout/Library/Application\ Support/YTHoldForSpeed.bundle Resources/ - @cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/ - @cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/ - @cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/ @cp -R lang/YTLitePlus.bundle Resources/ @echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m" @ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib - @codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib + @codesign --remove-signature $(THEOS_OBJ_DIR)/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis $(THEOS_OBJ_DIR)/libcolorpicker.dylib internal-clean:: @rm -rf $(YTLITE_PATH)/* From a70a4c5e0b31ab88fa375a8dd549adf083bc1214 Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Sat, 27 Jul 2024 16:11:46 -0700 Subject: [PATCH 6/7] Copy from uYouEnhanced --- .github/workflows/buildapp.yml | 19 ++++++----- Makefile | 58 +++++++++++++++++++--------------- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 2c9c164..8ba8d41 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -120,17 +120,16 @@ jobs: run: | # Download and unzip iPA wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa - unzip -q main/YouTube.ipa -d main/tmp + cd ${{ github.workspace }}/main + mv YouTube.ipa YouTube.zip + unzip -q YouTube.zip # Get the version number of the YouTube app and store it - echo "YT_VERSION=$(grep -A 1 'CFBundleVersion' main/tmp/Payload/YouTube.app/Info.plist | grep '' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV - # Get the version number of the latest release - wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html - YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' main/tmp/release_page.html | head -n 1 | sed 's/\/tag\/v//') + echo "YT_VERSION=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion)" >> $GITHUB_ENV + # Get the version number of the latest release of YTLite + wget -qO- https://github.com/dayanch96/YTLite/releases/latest > release_page.html + YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' release_page.html | head -n 1 | sed 's/\/tag\/v//') echo "YTLITE_VERSION=${YTLITE_VERSION}" >> $GITHUB_ENV echo $YTLITE_VERSION - # Remove contents in the iPA that interfere with sideloading - rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources - rm -rf main/tmp/Payload/YouTube.app/PlugIns/* # Modify Info.plist to remove UISupportedDevices (Python script) python - < +export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks/RemoteLog -I$(THEOS_PROJECT_DIR)/Tweaks + +# Todo figure out what this does +ifneq ($(JAILBROKEN),1) +export DEBUGFLAG = -ggdb -Wno-unused-command-line-argument -L$(THEOS_OBJ_DIR) -F$(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install/Library/Frameworks MODULES = jailed -FINALPACKAGE = 1 -CODESIGN_IPA = 0 +endif + PACKAGE_VERSION = X.X.X-X.X +INSTALL_TARGET_PROCESSES = YouTube TWEAK_NAME = YTLitePlus DISPLAY_NAME = YouTube BUNDLE_ID = com.google.ios.youtube @@ -21,36 +34,30 @@ YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle # Todo figure out the purpose of this EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks -# Allow YouTubeHeader to be accessible using #include <...> -export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks - -$(TWEAK_NAME)_INJECT_DYLIBS = $(YTLITE_DYLIB) $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTHoldForSpeed.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouGroupSettings.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib -$(TWEAK_NAME)_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) -$(TWEAK_NAME)_IPA = ./tmp/Payload/YouTube.app +$(TWEAK_NAME)_FILES = YTLitePlus.xm $(wildcard Sources/*.xm) $(wildcard Sources/*.x) $(wildcard Sources/*.m) $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) +$(TWEAK_NAME)_FRAMEWORKS = UIKit Foundation AVFoundation AVKit Photos Accelerate CoreMotion GameController VideoToolbox Security +$(TWEAK_NAME)_LIBRARIES = bz2 c++ iconv z $(TWEAK_NAME)_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) -$(TWEAK_NAME)_FRAMEWORKS = UIKit Security +$(TWEAK_NAME)_INJECT_DYLIBS = $(YTLITE_DYLIB) $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTHoldForSpeed.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouGroupSettings.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib +$(TWEAK_NAME)_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib +$(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework +$(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Bundles/*.bundle) +$(TWEAK_NAME)_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex) include $(THEOS)/makefiles/common.mk -include $(THEOS_MAKE_PATH)/tweak.mk +ifneq ($(JAILBROKEN),1) SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings include $(THEOS_MAKE_PATH)/aggregate.mk +endif +include $(THEOS_MAKE_PATH)/tweak.mk -# Embed bundles and extensions -$(TWEAK_NAME)_BUNDLE_RESOURCE_DIRS = $(wildcard Tweaks/*/var/jb/Library/Application\ Support/*.bundle) $(wildcard Tweaks/*/layout/Library/Application\ Support/*.bundle) - - -before-package:: - @echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m" - @mkdir -p Resources/Frameworks/Alderis.framework && find $(THEOS_OBJ_DIR)/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; - @cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/ - @cp -R lang/YTLitePlus.bundle Resources/ - @echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m" - @ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib - @codesign --remove-signature $(THEOS_OBJ_DIR)/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis $(THEOS_OBJ_DIR)/libcolorpicker.dylib +REMOVE_EXTENSIONS = 1 +CODESIGN_IPA = 0 internal-clean:: @rm -rf $(YTLITE_PATH)/* +ifneq ($(JAILBROKEN),1) before-all:: @if [[ ! -f $(YTLITE_DEB) ]]; then \ rm -rf $(YTLITE_PATH)/*; \ @@ -62,3 +69,4 @@ before-all:: $(PRINT_FORMAT_ERROR) "Failed to extract YTLite"; exit 1; \ fi; \ fi +endif \ No newline at end of file From 7a2f0b013d28feb05ea260c6d4f20e157ba0d694 Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Sat, 27 Jul 2024 17:32:05 -0700 Subject: [PATCH 7/7] Revert Revert Revert Makefile --- .github/workflows/buildapp.yml | 23 ++++++---- Makefile | 84 ++++++++++++++++------------------ 2 files changed, 53 insertions(+), 54 deletions(-) diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 8ba8d41..da0d7a8 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -47,6 +47,10 @@ on: required: false type: boolean +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build: name: Build YTLitePlus @@ -120,16 +124,17 @@ jobs: run: | # Download and unzip iPA wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa - cd ${{ github.workspace }}/main - mv YouTube.ipa YouTube.zip - unzip -q YouTube.zip + unzip -q main/YouTube.ipa -d main/tmp # Get the version number of the YouTube app and store it - echo "YT_VERSION=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion)" >> $GITHUB_ENV - # Get the version number of the latest release of YTLite - wget -qO- https://github.com/dayanch96/YTLite/releases/latest > release_page.html - YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' release_page.html | head -n 1 | sed 's/\/tag\/v//') + echo "YT_VERSION=$(grep -A 1 'CFBundleVersion' main/tmp/Payload/YouTube.app/Info.plist | grep '' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV + # Get the version number of the latest release + wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html + YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' main/tmp/release_page.html | head -n 1 | sed 's/\/tag\/v//') echo "YTLITE_VERSION=${YTLITE_VERSION}" >> $GITHUB_ENV echo $YTLITE_VERSION + # Remove contents in the iPA that interfere with sideloading + rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources + rm -rf main/tmp/Payload/YouTube.app/PlugIns/* # Modify Info.plist to remove UISupportedDevices (Python script) python - < -export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks/RemoteLog -I$(THEOS_PROJECT_DIR)/Tweaks - -# Todo figure out what this does -ifneq ($(JAILBROKEN),1) -export DEBUGFLAG = -ggdb -Wno-unused-command-line-argument -L$(THEOS_OBJ_DIR) -F$(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install/Library/Frameworks +TARGET = iphone:clang:16.5:15.0 +YTLitePlus_USE_FISHHOOK = 0 +ARCHS = arm64 MODULES = jailed -endif - +FINALPACKAGE = 1 +CODESIGN_IPA = 0 PACKAGE_VERSION = X.X.X-X.X -INSTALL_TARGET_PROCESSES = YouTube TWEAK_NAME = YTLitePlus DISPLAY_NAME = YouTube BUNDLE_ID = com.google.ios.youtube -# Setup variables for YTLite download and install +EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks + +# Allow YouTubeHeader to be accessible using #include <...> +export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks + +YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib +YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) +YTLitePlus_IPA = ./tmp/Payload/YouTube.app +YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) +YTLitePlus_FRAMEWORKS = UIKit Security + +include $(THEOS)/makefiles/common.mk +include $(THEOS_MAKE_PATH)/tweak.mk +SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings +include $(THEOS_MAKE_PATH)/aggregate.mk + YTLITE_PATH = Tweaks/YTLite -# Grab the YTLite version from the releases page on GitHub YTLITE_VERSION := $(shell wget -qO- "https://github.com/dayanch96/YTLite/releases/latest" | grep -o -E '/tag/v[^"]+' | head -n 1 | sed 's/\/tag\/v//') YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle - -# Todo figure out the purpose of this -EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks - -$(TWEAK_NAME)_FILES = YTLitePlus.xm $(wildcard Sources/*.xm) $(wildcard Sources/*.x) $(wildcard Sources/*.m) $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \)) -$(TWEAK_NAME)_FRAMEWORKS = UIKit Foundation AVFoundation AVKit Photos Accelerate CoreMotion GameController VideoToolbox Security -$(TWEAK_NAME)_LIBRARIES = bz2 c++ iconv z -$(TWEAK_NAME)_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS) -$(TWEAK_NAME)_INJECT_DYLIBS = $(YTLITE_DYLIB) $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTHoldForSpeed.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouGroupSettings.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib -$(TWEAK_NAME)_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib -$(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework -$(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Bundles/*.bundle) -$(TWEAK_NAME)_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex) - -include $(THEOS)/makefiles/common.mk -ifneq ($(JAILBROKEN),1) -SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouGroupSettings -include $(THEOS_MAKE_PATH)/aggregate.mk -endif -include $(THEOS_MAKE_PATH)/tweak.mk - -REMOVE_EXTENSIONS = 1 -CODESIGN_IPA = 0 +before-package:: + @echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m" + @mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \; + @cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/ + @cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/ + @cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/ + @cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/ + @cp -R Tweaks/YTABConfig/layout/Library/Application\ Support/YTABC.bundle Resources/ + @cp -R Tweaks/YouMute/layout/Library/Application\ Support/YouMute.bundle Resources/ + @cp -R Tweaks/DontEatMyContent/layout/Library/Application\ Support/DontEatMyContent.bundle Resources/ + @cp -R Tweaks/YTHoldForSpeed/layout/Library/Application\ Support/YTHoldForSpeed.bundle Resources/ + @cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/ + @cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/ + @cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/ + @cp -R lang/YTLitePlus.bundle Resources/ + @echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m" + @ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib + @codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib internal-clean:: @rm -rf $(YTLITE_PATH)/* -ifneq ($(JAILBROKEN),1) before-all:: @if [[ ! -f $(YTLITE_DEB) ]]; then \ rm -rf $(YTLITE_PATH)/*; \ @@ -69,4 +64,3 @@ before-all:: $(PRINT_FORMAT_ERROR) "Failed to extract YTLite"; exit 1; \ fi; \ fi -endif \ No newline at end of file