diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0a71a76..09935e3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,34 +50,30 @@ jobs: name: futurerestore-macOS-arm64 path: | /Users/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-*.tar.xz - # ubuntu: - # runs-on: ubuntu-20.04 - # steps: - # - name: Checkout - # uses: actions/checkout@v2 - # with: - # submodules: 'true' - # fetch-depth: 0 - # - name: Install LLVM - # uses: KyleMayes/install-llvm-action@v1 - # with: - # version: "12.0.0" - # force-version: true - # ubuntu-version: "20.04" - # directory: /home/runner/work/futurerestore/futurerestore/.github/llvm - # - name: Symlink LLVM - # if: contains(matrix.os, 'ubuntu') - # run: sudo ln -s libclang-12.so.1 /lib/x86_64-linux-gnu/libclang.so - # working-directory: ${{ env.LLVM_PATH }}/lib - # - name: Ubuntu Build - # id: ubuntu - # run: | - # cd /home/runner/work/futurerestore/futurerestore/.github/workflows - # ./ubuntu.sh - # - name: Archive - # id: archive - # uses: actions/upload-artifact@v2 - # with: - # name: futurerestore-Ubuntu - # path: | - # /home/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-*.tar.xz + linux: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: 'true' + fetch-depth: 0 + - name: Linux Build + id: linux + uses: addnab/docker-run-action@v3 + with: + image: debian:buster-slim + options: -v ${{ github.workspace }}/..:/tmp/build/ + run: | + /tmp/build/futurerestore/.github/workflows/linux.sh + - name: Linux Copy + run: | + export FUTURERESTORE_VERSION_RELEASE=$(cat /home/runner/work/futurerestore/futurerestore/version.txt | tr -d '\n') + docker cp $(docker ps -ql):/tmp/build/futurerestore-${FUTURERESTORE_VERSION_RELEASE}-linux.tar.xz /home/runner/work/futurerestore/futurerestore/.github/workflows/ + - name: Archive + id: archive + uses: actions/upload-artifact@v2 + with: + name: futurerestore-linux + path: | + /home/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-*.tar.xz diff --git a/.github/workflows/linux.sh b/.github/workflows/linux.sh new file mode 100755 index 00000000..e2000335 --- /dev/null +++ b/.github/workflows/linux.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +echo 'step 1:' +set -e +export DIR=$(pwd) +export BASE=/tmp/build/ +export C_ARGS="-fPIC -static" +export CXX_ARGS="-fPIC -static" +export LD_ARGS="-Wl,--allow-multiple-definition -static -L/usr/lib/x86_64-linux-gnu -L/tmp/out/lib" +export C_ARGS2="-fPIC" +export CXX_ARGS2="-fPIC" +export LD_ARGS2="-Wl,--allow-multiple-definition -L/usr/lib/x86_64-linux-gnu -L/tmp/out/lib" +export PKG_CFG="/tmp/out/lib/pkgconfig" +export CC_ARGS="CC=/usr/bin/clang-13 CXX=/usr/bin/clang++-13 LD=/usr/bin/ld.lld-13 RANLIB=/usr/bin/ranlib AR=/usr/bin/ar" +export CONF_ARGS="--prefix=/tmp/out --disable-dependency-tracking --disable-silent-rules --disable-debug --without-cython --disable-shared" +export CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DCMAKE_CROSSCOMPILING=true -DCMAKE_C_FLAGS=${C_ARGS} -DCMAKE_CXX_FLAGS=${CXX_ARGS} -DCMAKE_SHARED_LINKER_FLAGS=${LD_ARGS} -DCMAKE_STATIC_LINKER_FLAGS=${LD_ARGS} -DCMAKE_INSTALL_PREFIX=/tmp/out -DBUILD_SHARED_LIBS=0 -Wno-dev" +export JNUM="-j$(($(nproc) / 2))" +export LNUM="-l$(($(nproc) / 2))" +cd ${BASE} +sed -i 's/deb\.debian\.org/ftp.de.debian.org/g' /etc/apt/sources.list +apt-get -qq update +apt-get -yqq dist-upgrade +apt-get install --no-install-recommends -yqq curl gnupg2 zstd lsb-release wget software-properties-common build-essential git autoconf automake libtool-bin pkg-config cmake zlib1g-dev libminizip-dev libpng-dev libreadline-dev libbz2-dev libudev-dev libudev1 +curl -sO https://linux.cryptiiiic.com/CI-Scripts/linux.sh +chmod +x linux.sh +if [[ "$(file linux.sh)" == "linux.sh: Bourne-Again shell script, ASCII text executable" ]] +then + ./linux.sh +else + cp -LRP /usr/bin/ld ~/ + rm -rf /usr/bin/ld /usr/lib/x86_64-linux-gnu/lib{usb-1.0,png*}.so* + curl -sO https://apt.llvm.org/llvm.sh + chmod 0755 llvm.sh + ./llvm.sh 13 + ln -sf /usr/bin/ld.lld-13 /usr/bin/ld + echo 'step 2:' + curl -sO https://linux.cryptiiiic.com/CI-Scripts/linux.tar.zst + zstd -dk linux.tar.zst + tar xf ${BASE}/linux.tar -C / --warning=none || true || true + echo 'step 3:' + cd ${BASE}/futurerestore + export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n') + git submodule init; git submodule update --recursive + cd external/tsschecker + git submodule init; git submodule update --recursive + cd ${BASE}/futurerestore + echo 'step 5:' + ./autogen.sh ${CONF_ARGS} --enable-static ${CC_ARGS} CFLAGS="${C_ARGS2} -DIDEVICERESTORE_NOMAIN=1 -DTSSCHECKER_NOMAIN=1" LDFLAGS="${LD_ARGS2} -lpthread -ldl -lusb-1.0 -ludev -lusbmuxd-2.0 -llzfse -lcommon -lxpwn" PKG_CONFIG_PATH="${PKG_CFG}" + make $JNUM $LNUM + make $JNUM $LNUM install + echo 'step 6:' + cp /tmp/out/bin/futurerestore ${BASE}/futurerestore-${FUTURERESTORE_VERSION_RELEASE} + cd ${BASE} + tar cpJvf ${BASE}/futurerestore-${FUTURERESTORE_VERSION_RELEASE}-linux.tar.xz futurerestore-${FUTURERESTORE_VERSION_RELEASE} + ldd ${BASE}/futurerestore-${FUTURERESTORE_VERSION_RELEASE} || true + ./futurerestore-${FUTURERESTORE_VERSION_RELEASE} || true + echo 'End' +fi diff --git a/.github/workflows/proc_ci1.diff b/.github/workflows/proc_ci1.diff deleted file mode 100644 index e1661a9e..00000000 --- a/.github/workflows/proc_ci1.diff +++ /dev/null @@ -1,650 +0,0 @@ -diff --git a/Makefile b/Makefile -index d2d437c..8c15b54 100644 ---- a/Makefile -+++ b/Makefile -@@ -345,7 +345,7 @@ BUILD_CXXFLAGS := - BUILD_LDFLAGS := - - else ifeq ($(UNAME),Darwin) --ifeq ($(shell sw_vers -productName),macOS) -+ifeq ($(shell echo 1),1) - ifneq ($(MEMO_QUIET),1) - $(warning Building on MacOS) - endif # ($(MEMO_QUIET),1) -@@ -434,18 +434,18 @@ OPTIMIZATION_FLAGS := -Oz - else - OPTIMIZATION_FLAGS := -Os - ifeq ($(UNAME),Darwin) --OPTIMIZATION_FLAGS += -flto=thin -+OPTIMIZATION_FLAGS += -fembed-bitcode=off -fno-lto - else ifeq ($(MEMO_FORCE_LTO),1) --OPTIMIZATION_FLAGS += -flto=thin -+OPTIMIZATION_FLAGS += -fembed-bitcode=off -fno-lto - # This flag will prevent ld64 from deleting the object file needed for dsymutil to work. - # I'm not setting this on macOS because I am unsure if it is needed. - # See: clang(1) --OPTIMIZATION_FLAGS += -Wl,-object_path_lto,/tmp/lto.o -+# OPTIMIZATION_FLAGS += -Wl,-object_path_lto,/tmp/lto.o - endif - endif --ifdef ($(MEMO_ALT_LTO_LIB)) --OPTIMIZATION_FLAGS += -lto_library $(MEMO_ALT_LTO_LIB) --endif -+# ifdef ($(MEMO_ALT_LTO_LIB)) -+# OPTIMIZATION_FLAGS += -lto_library $(MEMO_ALT_LTO_LIB) -+# endif - - CFLAGS := $(OPTIMIZATION_FLAGS) -arch $(MEMO_ARCH) -isysroot $(TARGET_SYSROOT) $(PLATFORM_VERSION_MIN) -isystem $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -isystem $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)$(MEMO_ALT_PREFIX)/include -F$(BUILD_BASE)$(MEMO_PREFIX)/System/Library/Frameworks -F$(BUILD_BASE)$(MEMO_PREFIX)/Library/Frameworks - CXXFLAGS := $(CFLAGS) -@@ -702,17 +702,17 @@ endif - - TAR := tar # TODO: remove - --ifneq ($(shell PATH=$(PATH) tar --version | grep -q GNU && echo 1),1) -+ifneq ($(shell tar --version | grep -q GNU && echo 1),1) - $(error Install GNU tar) - endif - - SED := sed # TODO: remove - --ifneq ($(shell PATH=$(PATH) sed --version | grep -q GNU && echo 1),1) -+ifneq ($(shell sed --version | grep -q GNU && echo 1),1) - $(error Install GNU sed) - endif - --ifneq ($(shell PATH=$(PATH) grep --version | grep -q GNU && echo 1),1) -+ifneq ($(shell grep --version | grep -q GNU && echo 1),1) - $(error Install GNU grep) - endif - -@@ -762,49 +762,49 @@ ifneq ($(call HAS_COMMAND,m4),1) - $(error Install m4) - endif - --ifneq ($(shell PATH=$(PATH) groff --version | grep -q 'version 1.2' && echo 1),1) -+ifneq ($(shell groff --version | grep -q 'version 1.2' && echo 1),1) - $(error Install newer groff) - endif - --ifneq ($(shell PATH=$(PATH) patch --version | grep -q 'GNU patch' && echo 1),1) -+ifneq ($(shell patch --version | grep -q 'GNU patch' && echo 1),1) - $(error Install GNU patch) - endif - --ifneq ($(shell PATH=$(PATH) find --version | grep -q 'GNU find' && echo 1),1) -+ifneq ($(shell find --version | grep -q 'GNU find' && echo 1),1) - $(error Install GNU findutils) - endif - --ifneq ($(shell PATH=$(PATH) rmdir --version | grep -q 'GNU coreutils' && echo 1),1) -+ifneq ($(shell rmdir --version | grep -q 'GNU coreutils' && echo 1),1) - $(error Install GNU coreutils) - endif - --ifeq ($(shell PATH=$(PATH) install --version | grep -q 'GNU coreutils' && echo 1),1) --export INSTALL := $(shell PATH=$(PATH) which install) --strip-program=$(STRIP) -+ifeq ($(shell install --version | grep -q 'GNU coreutils' && echo 1),1) -+export INSTALL := $(shell which install) --strip-program=$(STRIP) - else - $(error Install GNU coreutils) - endif - --ifeq ($(shell PATH=$(PATH) wc --version | grep -q 'GNU coreutils' && echo 1),1) -+ifeq ($(shell wc --version | grep -q 'GNU coreutils' && echo 1),1) - WC := wc - else - $(error Install GNU coreutils) - endif - --ifeq ($(shell PATH=$(PATH) cp --version | grep -q 'GNU coreutils' && echo 1),1) -+ifeq ($(shell cp --version | grep -q 'GNU coreutils' && echo 1),1) - CP := cp - else - $(error Install GNU coreutils) - endif - export CP - --ifeq ($(shell PATH=$(PATH) ln --version | grep -q 'GNU coreutils' && echo 1),1) -+ifeq ($(shell ln --version | grep -q 'GNU coreutils' && echo 1),1) - LN := ln - else - $(error Install GNU coreutils) - endif - export LN - --ifneq ($(shell PATH=$(PATH) file -bi $(BUILD_MISC)/launchctl.1700 | grep -q 'x-mach-binary; charset=binary' && echo 1),1) -+ifneq ($(shell file -bi $(BUILD_MISC)/launchctl.1700 | grep -q 'x-mach-binary; charset=binary' && echo 1),1) - $(error Install better file from Procursus - sudo apt install file) - endif - -@@ -871,11 +871,11 @@ MAKEFLAGS += --no-print-directory - - ifeq ($(findstring --jobserver-auth=,$(MAKEFLAGS)),) - ifeq ($(call HAS_COMMAND,nproc),1) --GET_LOGICAL_CORES := nproc -+GET_LOGICAL_CORES := expr $(shell nproc) / 2 - else --GET_LOGICAL_CORES := sysctl -n hw.ncpu -+GET_LOGICAL_CORES := expr $(shell sysctl -n hw.ncpu) / 2 - endif --MAKEFLAGS += --jobs=$(shell $(GET_LOGICAL_CORES)) -+MAKEFLAGS += --jobs=$(shell $(GET_LOGICAL_CORES)) --load-average=$(shell $(GET_LOGICAL_CORES)) - endif - - PROCURSUS := 1 -@@ -1011,7 +1011,7 @@ endif - echo "$(BUILD_STRAP)/$${BOOTSTRAP}" - endif # ($(MEMO_PREFIX),) - --%-package: FAKEROOT=fakeroot -i $(BUILD_STAGE)/.fakeroot_$$(echo $@ | sed 's/\(.*\)-package/\1/') -s $(BUILD_STAGE)/.fakeroot_$$(echo $@ | sed 's/\(.*\)-package/\1/') -- -+%-package: FAKEROOT=fakeroot -i $(BUILD_STAGE)/.fakeroot_$* -s $(BUILD_STAGE)/.fakeroot_$* -- - %-package: .SHELLFLAGS=-O extglob -c - %-stage: % - rm -f $(BUILD_STAGE)/.fakeroot_$* -@@ -1056,24 +1056,24 @@ endif - - ifeq (,$(findstring darwin,$(MEMO_TARGET))) - @# Copy headers from MacOSX.sdk -- @cp -af $(MACOSX_SYSROOT)/usr/include/{arpa,bsm,net,xpc,netinet,servers} $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -- @cp -af $(MACOSX_SYSROOT)/usr/include/objc/objc-runtime.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/objc -- @cp -af $(MACOSX_SYSROOT)/usr/include/libkern/{OSDebug.h,OSKextLib.h,OSReturn.h,OSThermalNotification.h,OSTypes.h,machine} $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/libkern -- @cp -af $(MACOSX_SYSROOT)/usr/include/kern $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -- @cp -af $(MACOSX_SYSROOT)/usr/include/sys/{tty*,proc*,ptrace,kern*,random,reboot,user,vnode}.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/sys -- @cp -af $(MACOSX_SYSROOT)/System/Library/Frameworks/IOKit.framework/Headers/* $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/IOKit -- @cp -af $(MACOSX_SYSROOT)/usr/include/{ar,bootstrap,launch,libc,libcharset,localcharset,libproc,NSSystemDirectories,tzfile,vproc}.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -- @cp -af $(MACOSX_SYSROOT)/usr/include/mach/{*.defs,{mach_vm,shared_region}.h} $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach -- @cp -af $(MACOSX_SYSROOT)/usr/include/mach/machine/*.defs $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach/machine -- @cp -af $(TARGET_SYSROOT)/usr/include/mach/machine/thread_state.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach/machine -- @cp -af $(TARGET_SYSROOT)/usr/include/mach/arm $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach -- @cp -af $(BUILD_INFO)/availability.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/os -+ @cp -a $(MACOSX_SYSROOT)/usr/include/{arpa,bsm,net,xpc,netinet,servers} $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -+ @cp -a $(MACOSX_SYSROOT)/usr/include/objc/objc-runtime.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/objc -+ @cp -a $(MACOSX_SYSROOT)/usr/include/libkern/* $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/libkern -+ @cp -a $(MACOSX_SYSROOT)/usr/include/kern $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -+ @cp -a $(MACOSX_SYSROOT)/usr/include/sys/{tty*,proc*,ptrace,kern*,random,reboot,user,vnode}.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/sys -+ @cp -a $(MACOSX_SYSROOT)/System/Library/Frameworks/IOKit.framework/Headers/* $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/IOKit -+ @cp -a $(MACOSX_SYSROOT)/usr/include/{ar,bootstrap,launch,libc,libcharset,localcharset,libproc,NSSystemDirectories,tzfile,vproc}.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -+ @cp -a $(MACOSX_SYSROOT)/usr/include/mach/{*.defs,{mach_vm,shared_region}.h} $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach -+ @cp -a $(MACOSX_SYSROOT)/usr/include/mach/machine/*.defs $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach/machine -+ @cp $(TARGET_SYSROOT)/usr/include/mach/machine/thread_state.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach/machine -+ @cp -a $(TARGET_SYSROOT)/usr/include/mach/arm $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/mach -+ @cp -a $(BUILD_INFO)/availability.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/os - ifneq ($(wildcard $(BUILD_MISC)/IOKit.framework.$(PLATFORM)),) -- @cp -af $(BUILD_MISC)/IOKit.framework.$(PLATFORM) $(BUILD_BASE)/$(MEMO_PREFIX)/System/Library/Frameworks/IOKit.framework -+ @cp -a $(BUILD_MISC)/IOKit.framework.$(PLATFORM) $(BUILD_BASE)/$(MEMO_PREFIX)/System/Library/Frameworks/IOKit.framework - endif - - @mkdir -p $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/CoreAudio -- @cp -af $(MACOSX_SYSROOT)/System/Library/Frameworks/CoreAudio.framework/Headers/* $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/CoreAudio -+ @cp -a $(MACOSX_SYSROOT)/System/Library/Frameworks/CoreAudio.framework/Headers/* $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/CoreAudio - - @# Patch headers from iPhoneOS.sdk - @$(SED) -E s/'__IOS_PROHIBITED|__TVOS_PROHIBITED|__WATCHOS_PROHIBITED'//g < $(TARGET_SYSROOT)/usr/include/stdlib.h > $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/stdlib.h -@@ -1086,8 +1086,8 @@ endif - @$(SED) -E /'__API_UNAVAILABLE'/d < $(TARGET_SYSROOT)/usr/include/pthread.h > $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/pthread.h - - @# Setup libiosexec -- @cp -af $(BUILD_MISC)/libiosexec/libiosexec.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -- @cp -af $(BUILD_MISC)/libiosexec/libiosexec.1.tbd $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib -+ @cp -a $(BUILD_MISC)/libiosexec/libiosexec.h $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include -+ @cp -a $(BUILD_MISC)/libiosexec/libiosexec.1.tbd $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib - @ln -sf libiosexec.1.tbd $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/libiosexec.tbd - @rm -f $(BUILD_BASE)/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/libiosexec.*.dylib - @$(SED) -i '1s/^/#include \n/' $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/unistd.h -diff --git a/makefiles/futurerestore.mk b/makefiles/futurerestore.mk -index e90d6e0..335eb19 100644 ---- a/makefiles/futurerestore.mk -+++ b/makefiles/futurerestore.mk -@@ -3,34 +3,24 @@ $(error Use the main Makefile) - endif - - SUBPROJECTS += futurerestore --FUTURERESTORE_VERSION := 195 --FUTURERESTORE_COMMIT := 55db758b5d4d6c08daa48af9aad1abf2b6466f36 --FUTURERESTORE_IDEVICERESTORE_COMMIT := d7d9996b3910902a56462fa8d9dc5909fcf8f4c9 --DEB_FUTURERESTORE_V ?= $(FUTURERESTORE_VERSION)-1 -+DEB_FUTURERESTORE_V ?= $(FUTURERESTORE_VERSION) - --futurerestore-setup: setup tsschecker-setup -- $(call GITHUB_ARCHIVE,m1stadev,futurerestore,$(FUTURERESTORE_COMMIT),$(FUTURERESTORE_COMMIT)) -- $(call GITHUB_ARCHIVE,m1stadev,idevicerestore,$(FUTURERESTORE_IDEVICERESTORE_COMMIT),$(FUTURERESTORE_IDEVICERESTORE_COMMIT)) -- $(call EXTRACT_TAR,futurerestore-$(FUTURERESTORE_COMMIT).tar.gz,futurerestore-$(FUTURERESTORE_COMMIT),futurerestore) -- -- -rmdir $(BUILD_WORK)/futurerestore/external/{idevicerestore,tsschecker} -- $(call EXTRACT_TAR,idevicerestore-$(FUTURERESTORE_IDEVICERESTORE_COMMIT).tar.gz,idevicerestore-$(FUTURERESTORE_IDEVICERESTORE_COMMIT),futurerestore/external/idevicerestore) -- cp -R $(BUILD_WORK)/tsschecker $(BUILD_WORK)/futurerestore/external -- -- $(SED) -i 's/git rev\-list \-\-count HEAD/printf ${FUTURERESTORE_VERSION}/g' $(BUILD_WORK)/futurerestore/configure.ac -- $(SED) -i 's/git rev\-parse HEAD/printf ${FUTURERESTORE_COMMIT}/g' $(BUILD_WORK)/futurerestore/configure.ac -+futurerestore-setup: setup -+ ln -sf ${BASE}/../../../futurerestore $(BUILD_WORK)/ - - ifneq ($(wildcard $(BUILD_WORK)/futurerestore/.build_complete),) - futurerestore: - @echo "Using previously built futurerestore." - else --futurerestore: futurerestore-setup libirecovery openssl libusbmuxd libimobiledevice img4tool libgeneral libzip libfragmentzip libipatcher -+# futurerestore: futurerestore-setup openssl libplist libusbmuxd libimobiledevice libirecovery img4tool libgeneral libzip libfragmentzip libipatcher -+futurerestore: futurerestore-setup - cd $(BUILD_WORK)/futurerestore && ./autogen.sh \ - $(DEFAULT_CONFIGURE_FLAGS) \ - --disable-silent-rules \ -- zlib_LIBS="-L$(TARGET_SYSROOT)/usr/lib -lz" \ -- zlib_CFLAGS="-I$(TARGET_SYSROOT)/usr/include" -- +$(MAKE) -C $(BUILD_WORK)/futurerestore -+ libcurl_LIBS="-L$(TARGET_SYSROOT)/usr/lib -lcurl" \ -+ libcurl_CFLAGS="$(CFLAGS)" -+ +$(MAKE) -C $(BUILD_WORK)/futurerestore \ -+ LDFLAGS="$(LDFLAGS) -L$(TARGET_SYSROOT)/usr/lib -llzma -lbz2 -lcompression -lcurl -framework CoreFoundation -framework IOKit -L$(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib -lusbmuxd-2.0 -L$(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/xpwn -lcommon -lxpwn" - +$(MAKE) -C $(BUILD_WORK)/futurerestore install \ - DESTDIR="$(BUILD_STAGE)/futurerestore" - touch $(BUILD_WORK)/futurerestore/.build_complete -diff --git a/makefiles/gettext.mk b/makefiles/gettext.mk -index 41cd708..8140d62 100644 ---- a/makefiles/gettext.mk -+++ b/makefiles/gettext.mk -@@ -30,6 +30,9 @@ gettext: gettext-setup ncurses libunistring - +$(MAKE) -C $(BUILD_WORK)/gettext install \ - DESTDIR=$(BUILD_BASE) - rm -rf $(BUILD_STAGE)/gettext/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/share/gettext-* -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.a' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/gettext/.build_complete - endif - -diff --git a/makefiles/img4tool.mk b/makefiles/img4tool.mk -index 36ef26d..8b028de 100644 ---- a/makefiles/img4tool.mk -+++ b/makefiles/img4tool.mk -@@ -20,12 +20,14 @@ img4tool: - else - img4tool: img4tool-setup openssl libplist libgeneral - cd $(BUILD_WORK)/img4tool && ./autogen.sh \ -- $(DEFAULT_CONFIGURE_FLAGS) -- +$(MAKE) -C $(BUILD_WORK)/img4tool -+ $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared - +$(MAKE) -C $(BUILD_WORK)/img4tool install \ - DESTDIR="$(BUILD_STAGE)/img4tool" - +$(MAKE) -C $(BUILD_WORK)/img4tool install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/img4tool/.build_complete - endif - -diff --git a/makefiles/libfragmentzip.mk b/makefiles/libfragmentzip.mk -index 7dcbcc8..82b6b87 100644 ---- a/makefiles/libfragmentzip.mk -+++ b/makefiles/libfragmentzip.mk -@@ -19,16 +19,19 @@ ifneq ($(wildcard $(BUILD_WORK)/libfragmentzip/.build_complete),) - libfragmentzip: - @echo "Using previously built libfragmentzip." - else --libfragmentzip: libfragmentzip-setup libgeneral libzip curl -+libfragmentzip: libfragmentzip-setup libgeneral libzip - cd $(BUILD_WORK)/libfragmentzip && ./autogen.sh \ - $(DEFAULT_CONFIGURE_FLAGS) \ -- zlib_LIBS="-L$(TARGET_SYSROOT)/usr/lib -lz" \ -- zlib_CFLAGS="-I$(TARGET_SYSROOT)/usr/include" -- +$(MAKE) -C $(BUILD_WORK)/libfragmentzip -+ --disable-shared \ -+ curl_LIBS="-L$(TARGET_SYSROOT)/usr/lib -lcurl" \ -+ curl_CFLAGS="$(CFLAGS)" - +$(MAKE) -C $(BUILD_WORK)/libfragmentzip install \ - DESTDIR="$(BUILD_STAGE)/libfragmentzip" - +$(MAKE) -C $(BUILD_WORK)/libfragmentzip install \ - DESTDIR="$(BUILD_BASE)" -+ $(SED) -i '8d' $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/pkgconfig/libfragmentzip.pc -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libfragmentzip/.build_complete - endif - -diff --git a/makefiles/libgeneral.mk b/makefiles/libgeneral.mk -index 0c1147c..5f44723 100644 ---- a/makefiles/libgeneral.mk -+++ b/makefiles/libgeneral.mk -@@ -20,12 +20,14 @@ libgeneral: - else - libgeneral: libgeneral-setup - cd $(BUILD_WORK)/libgeneral && ./autogen.sh \ -- $(DEFAULT_CONFIGURE_FLAGS) -- +$(MAKE) -C $(BUILD_WORK)/libgeneral -+ $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared - +$(MAKE) -C $(BUILD_WORK)/libgeneral install \ - DESTDIR="$(BUILD_STAGE)/libgeneral" - +$(MAKE) -C $(BUILD_WORK)/libgeneral install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libgeneral/.build_complete - endif - -diff --git a/makefiles/libimobiledevice.mk b/makefiles/libimobiledevice.mk -index aede911..9d885b2 100644 ---- a/makefiles/libimobiledevice.mk -+++ b/makefiles/libimobiledevice.mk -@@ -19,11 +19,18 @@ libimobiledevice: libimobiledevice-setup libusbmuxd libplist openssl - cd $(BUILD_WORK)/libimobiledevice && ./autogen.sh \ - $(DEFAULT_CONFIGURE_FLAGS) \ - --without-cython -+ cd $(BUILD_WORK)/libimobiledevice/include -+ +$(MAKE) -C $(BUILD_WORK)/libimobiledevice -+ cd $(BUILD_WORK)/libimobiledevice/common -+ +$(MAKE) -C $(BUILD_WORK)/libimobiledevice -+ cd $(BUILD_WORK)/libimobiledevice/src - +$(MAKE) -C $(BUILD_WORK)/libimobiledevice - +$(MAKE) -C $(BUILD_WORK)/libimobiledevice install \ -- DESTDIR="$(BUILD_STAGE)/libimobiledevice" -+ DESTDIR="$(BUILD_STAGE)" - +$(MAKE) -C $(BUILD_WORK)/libimobiledevice install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libimobiledevice/.build_complete - endif - -diff --git a/makefiles/libinsn.mk b/makefiles/libinsn.mk -index daeed3e..aa5f330 100644 ---- a/makefiles/libinsn.mk -+++ b/makefiles/libinsn.mk -@@ -20,12 +20,14 @@ libinsn: - else - libinsn: libinsn-setup libgeneral - cd $(BUILD_WORK)/libinsn && ./autogen.sh \ -- $(DEFAULT_CONFIGURE_FLAGS) -- +$(MAKE) -C $(BUILD_WORK)/libinsn -+ $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared - +$(MAKE) -C $(BUILD_WORK)/libinsn install \ - DESTDIR="$(BUILD_STAGE)/libinsn" - +$(MAKE) -C $(BUILD_WORK)/libinsn install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libinsn/.build_complete - endif - -diff --git a/makefiles/libipatcher.mk b/makefiles/libipatcher.mk -index 73364b3..ec56ae0 100644 ---- a/makefiles/libipatcher.mk -+++ b/makefiles/libipatcher.mk -@@ -3,13 +3,13 @@ $(error Use the main Makefile) - endif - - SUBPROJECTS += libipatcher --LIBIPATCHER_VERSION := 81 --LIBIPATCHER_COMMIT := ad44d0da23f5120c3c77a72062bd627c50f37e71 --DEB_LIBIPATCHER_V ?= $(LIBIPATCHER_VERSION)-1 -+LIBIPATCHER_VERSION := 83 -+LIBIPATCHER_COMMIT := 49d26904d0c1cf001effb3aa07c3be20225c3b52 -+DEB_LIBIPATCHER_V ?= $(LIBIPATCHER_VERSION) - - libipatcher-setup: setup -- $(call GITHUB_ARCHIVE,tihmstar,libipatcher,$(LIBIPATCHER_VERSION),$(LIBIPATCHER_VERSION)) -- $(call EXTRACT_TAR,libipatcher-$(LIBIPATCHER_VERSION).tar.gz,libipatcher-$(LIBIPATCHER_VERSION),libipatcher) -+ $(call GITHUB_ARCHIVE,Cryptiiiic,libipatcher,$(LIBIPATCHER_COMMIT),$(LIBIPATCHER_COMMIT)) -+ $(call EXTRACT_TAR,libipatcher-$(LIBIPATCHER_COMMIT).tar.gz,libipatcher-$(LIBIPATCHER_COMMIT),libipatcher) - - $(call GITHUB_ARCHIVE,tihmstar,iBoot32Patcher,master,master) - $(call GITHUB_ARCHIVE,tihmstar,jssy,master,master) -@@ -27,9 +27,10 @@ ifneq ($(wildcard $(BUILD_WORK)/libipatcher/.build_complete),) - libipatcher: - @echo "Using previously built libipatcher." - else --libipatcher: libipatcher-setup libpng16 openssl img4tool liboffsetfinder64 libgeneral libplist curl xpwn -+libipatcher: libipatcher-setup libpng16 openssl img4tool liboffsetfinder64 libgeneral libplist xpwn - cd $(BUILD_WORK)/libipatcher && ./autogen.sh \ - $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared \ - CFLAGS="$(CFLAGS) -I$(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/xpwn" \ - CPPFLAGS="$(CPPFLAGS) -I$(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/xpwn" \ - LDFLAGS="$(LDFLAGS) -L$(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/xpwn" -@@ -39,6 +40,8 @@ libipatcher: libipatcher-setup libpng16 openssl img4tool liboffsetfinder64 libge - DESTDIR="$(BUILD_STAGE)/libipatcher" - +$(MAKE) -C $(BUILD_WORK)/libipatcher install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libipatcher/.build_complete - endif - -diff --git a/makefiles/libirecovery.mk b/makefiles/libirecovery.mk -index d261c12..81e63c8 100644 ---- a/makefiles/libirecovery.mk -+++ b/makefiles/libirecovery.mk -@@ -15,16 +15,20 @@ ifneq ($(wildcard $(BUILD_WORK)/libirecovery/.build_complete),) - libirecovery: - @echo "Using previously built libirecovery." - else --libirecovery: libirecovery-setup readline libusb -+libirecovery: libirecovery-setup libimobiledevice - cd $(BUILD_WORK)/libirecovery && ./autogen.sh \ - $(DEFAULT_CONFIGURE_FLAGS) \ -- --with-iokit=no -- +$(MAKE) -C $(BUILD_WORK)/libirecovery \ -- CFLAGS="$(CFLAGS) -I$(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/libusb-1.0" -+ --with-iokit=yes \ -+ --disable-shared -+ cd $(BUILD_WORK)/libirecovery/include -+ +$(MAKE) -C $(BUILD_WORK)/libirecovery -+ cd $(BUILD_WORK)/libirecovery/src - +$(MAKE) -C $(BUILD_WORK)/libirecovery install \ - DESTDIR=$(BUILD_STAGE)/libirecovery - +$(MAKE) -C $(BUILD_WORK)/libirecovery install \ - DESTDIR=$(BUILD_BASE) -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libirecovery/.build_complete - endif - -diff --git a/makefiles/liboffsetfinder64.mk b/makefiles/liboffsetfinder64.mk -index 1b8a892..174ffff 100644 ---- a/makefiles/liboffsetfinder64.mk -+++ b/makefiles/liboffsetfinder64.mk -@@ -3,12 +3,12 @@ $(error Use the main Makefile) - endif - - SUBPROJECTS += liboffsetfinder64 --LIBOFFSETFINDER64_VERSION := 132 --LIBOFFSETFINDER64_COMMIT := 35d3411bf675a83bdb768bc0ec26fe2344be16f3 --DEB_LIBOFFSETFINDER64_V ?= $(LIBOFFSETFINDER64_VERSION)-1 -+LIBOFFSETFINDER64_VERSION := 138 -+LIBOFFSETFINDER64_COMMIT := 2954b9955526f324345531751f49814c98075767 -+DEB_LIBOFFSETFINDER64_V ?= $(LIBOFFSETFINDER64_VERSION) - - liboffsetfinder64-setup: setup -- $(call GITHUB_ARCHIVE,tihmstar,liboffsetfinder64,$(LIBOFFSETFINDER64_COMMIT),$(LIBOFFSETFINDER64_COMMIT)) -+ $(call GITHUB_ARCHIVE,Cryptiiiic,liboffsetfinder64,$(LIBOFFSETFINDER64_COMMIT),$(LIBOFFSETFINDER64_COMMIT)) - $(call EXTRACT_TAR,liboffsetfinder64-$(LIBOFFSETFINDER64_COMMIT).tar.gz,liboffsetfinder64-$(LIBOFFSETFINDER64_COMMIT),liboffsetfinder64) - - $(SED) -i 's/git rev\-list \-\-count HEAD/printf ${LIBOFFSETFINDER64_VERSION}/g' $(BUILD_WORK)/liboffsetfinder64/configure.ac -@@ -20,12 +20,14 @@ liboffsetfinder64: - else - liboffsetfinder64: liboffsetfinder64-setup libgeneral libinsn img4tool openssl libplist - cd $(BUILD_WORK)/liboffsetfinder64 && ./autogen.sh \ -- $(DEFAULT_CONFIGURE_FLAGS) -- +$(MAKE) -C $(BUILD_WORK)/liboffsetfinder64 -+ $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared - +$(MAKE) -C $(BUILD_WORK)/liboffsetfinder64 install \ - DESTDIR="$(BUILD_STAGE)/liboffsetfinder64" - +$(MAKE) -C $(BUILD_WORK)/liboffsetfinder64 install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/liboffsetfinder64/.build_complete - endif - -diff --git a/makefiles/libplist.mk b/makefiles/libplist.mk -index 14a4b8d..4677b6b 100644 ---- a/makefiles/libplist.mk -+++ b/makefiles/libplist.mk -@@ -17,12 +17,16 @@ else - libplist: libplist-setup - cd $(BUILD_WORK)/libplist && ./autogen.sh \ - $(DEFAULT_CONFIGURE_FLAGS) \ -- --without-cython -+ --without-cython \ -+ --disable-shared || true -+ cat $(BUILD_WORK)/libplist/config.log - +$(MAKE) -C $(BUILD_WORK)/libplist - +$(MAKE) -C $(BUILD_WORK)/libplist install \ - DESTDIR="$(BUILD_STAGE)/libplist" - +$(MAKE) -C $(BUILD_WORK)/libplist install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libplist/.build_complete - endif - -diff --git a/makefiles/libpng16.mk b/makefiles/libpng16.mk -index 4827b00..e3f9d60 100644 ---- a/makefiles/libpng16.mk -+++ b/makefiles/libpng16.mk -@@ -18,12 +18,15 @@ libpng16: - else - libpng16: libpng16-setup - cd $(BUILD_WORK)/libpng16 && ./configure -C \ -- $(DEFAULT_CONFIGURE_FLAGS) -+ $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared - +$(MAKE) -C $(BUILD_WORK)/libpng16 - +$(MAKE) -C $(BUILD_WORK)/libpng16 install \ - DESTDIR=$(BUILD_STAGE)/libpng16 - +$(MAKE) -C $(BUILD_WORK)/libpng16 install \ - DESTDIR=$(BUILD_BASE) -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libpng16/.build_complete - endif - -diff --git a/makefiles/libusbmuxd.mk b/makefiles/libusbmuxd.mk -index c4fb00f..1ab8a4a 100644 ---- a/makefiles/libusbmuxd.mk -+++ b/makefiles/libusbmuxd.mk -@@ -16,12 +16,19 @@ libusbmuxd: - else - libusbmuxd: libusbmuxd-setup libplist - cd $(BUILD_WORK)/libusbmuxd && ./autogen.sh \ -- $(DEFAULT_CONFIGURE_FLAGS) -+ $(DEFAULT_CONFIGURE_FLAGS) \ -+ --disable-shared -+ cd $(BUILD_WORK)/libusbmuxd/include - +$(MAKE) -C $(BUILD_WORK)/libusbmuxd -+ cd $(BUILD_WORK)/libusbmuxd/common -+ +$(MAKE) -C $(BUILD_WORK)/libusbmuxd -+ cd $(BUILD_WORK)/libusbmuxd/src - +$(MAKE) -C $(BUILD_WORK)/libusbmuxd install \ - DESTDIR="$(BUILD_STAGE)/libusbmuxd" - +$(MAKE) -C $(BUILD_WORK)/libusbmuxd install \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libusbmuxd/.build_complete - endif - -diff --git a/makefiles/libzip.mk b/makefiles/libzip.mk -index b7b5019..ee0021b 100644 ---- a/makefiles/libzip.mk -+++ b/makefiles/libzip.mk -@@ -14,20 +14,27 @@ ifneq ($(wildcard $(BUILD_WORK)/libzip/.build_complete),) - libzip: - @echo "Using previously built libzip." - else --libzip: libzip-setup xz openssl -- cd $(BUILD_WORK)/libzip && cmake . \ -+libzip: libzip-setup openssl -+ cd $(BUILD_WORK)/libzip && \ -+ cmake \ -+ . \ - $(DEFAULT_CMAKE_FLAGS) \ -+ -DBUILD_SHARED_LIBS=0 \ - -DCOMMON_ARCH=$(DEB_ARCH) \ - -DENABLE_COMMONCRYPTO=OFF \ - -DENABLE_GNUTLS=OFF \ - -DENABLE_MBEDTLS=OFF \ - -DENABLE_WINDOWS_CRYPTO=OFF \ -- -DENABLE_OPENSSL=ON -- +$(MAKE) -C $(BUILD_WORK)/libzip -- +$(MAKE) -C $(BUILD_WORK)/libzip install \ -+ -DENABLE_OPENSSL=ON && \ -+ $(SED) -i '77,81d' $(BUILD_WORK)/libzip/cmake_install.cmake -+ +$(MAKE) zip/fast -C $(BUILD_WORK)/libzip \ -+ LDFLAGS="$(LDFLAGS) -L/usr/lib -llzma" -+ +$(MAKE) -C $(BUILD_WORK)/libzip install/strip/fast \ - DESTDIR="$(BUILD_STAGE)/libzip" -- +$(MAKE) -C $(BUILD_WORK)/libzip install \ -+ +$(MAKE) -C $(BUILD_WORK)/libzip install/strip/fast \ - DESTDIR="$(BUILD_BASE)" -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/libzip/.build_complete - endif - -diff --git a/makefiles/lzfse.mk b/makefiles/lzfse.mk -index ee21826..1c0b436 100644 ---- a/makefiles/lzfse.mk -+++ b/makefiles/lzfse.mk -@@ -17,8 +17,10 @@ else - lzfse: lzfse-setup - cd $(BUILD_WORK)/lzfse && cmake . \ - $(DEFAULT_CMAKE_FLAGS) \ -+ -DBUILD_SHARED_LIBS=0 \ - . -- +$(MAKE) -C $(BUILD_WORK)/lzfse -+ +$(MAKE) lzfse/fast -C $(BUILD_WORK)/lzfse -+ $(SED) -i '48,60d' $(BUILD_WORK)/lzfse/cmake_install.cmake - +$(MAKE) -C $(BUILD_WORK)/lzfse install \ - DESTDIR="$(BUILD_STAGE)/lzfse" - +$(MAKE) -C $(BUILD_WORK)/lzfse install \ -diff --git a/makefiles/openssl.mk b/makefiles/openssl.mk -index e4c90df..59df7c6 100644 ---- a/makefiles/openssl.mk -+++ b/makefiles/openssl.mk -@@ -64,10 +64,12 @@ openssl: openssl-setup - shared \ - $(SSL_SCHEME) - +$(MAKE) -C $(BUILD_WORK)/openssl -- +$(MAKE) -C $(BUILD_WORK)/openssl install_sw install_ssldirs \ -+ +$(MAKE) -C $(BUILD_WORK)/openssl install_dev \ - DESTDIR=$(BUILD_STAGE)/openssl -- +$(MAKE) -C $(BUILD_WORK)/openssl install_sw \ -+ +$(MAKE) -C $(BUILD_WORK)/openssl install_dev \ - DESTDIR=$(BUILD_BASE) -+ find . -name '*.dylib' -exec rm -rf {} \; -+ find . -name '*.la*' -exec rm -rf {} \; - touch $(BUILD_WORK)/openssl/.build_complete - endif - -diff --git a/makefiles/xpwn.mk b/makefiles/xpwn.mk -index 1b8ca5f..6ed85c1 100644 ---- a/makefiles/xpwn.mk -+++ b/makefiles/xpwn.mk -@@ -23,16 +23,16 @@ xpwn: xpwn-setup libpng16 openssl - $(DEFAULT_CMAKE_FLAGS) \ - -DBZIP2_LIBRARIES="-L$(TARGET_SYSROOT)/usr/lib -lbz2" \ - -DZLIB_LIBRARY="-L$(TARGET_SYSROOT)/usr/lib -lz" -- +$(MAKE) -C $(BUILD_WORK)/xpwn -- +$(MAKE) -C $(BUILD_WORK)/xpwn install \ -- DESTDIR=$(BUILD_BASE) -- +$(MAKE) -C $(BUILD_WORK)/xpwn install \ -- DESTDIR=$(BUILD_STAGE)/xpwn -+ +$(MAKE) common/fast xpwn/fast -C $(BUILD_WORK)/xpwn -+ # +$(MAKE) -C $(BUILD_WORK)/xpwn install \ -+ # DESTDIR=$(BUILD_BASE) -+ # +$(MAKE) -C $(BUILD_WORK)/xpwn install \ -+ # DESTDIR=$(BUILD_STAGE)/xpwn - mkdir -p {$(BUILD_BASE),$(BUILD_STAGE)/xpwn}/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/{include/xpwn,lib/xpwn} - cp -a $(BUILD_WORK)/xpwn/includes/* $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/xpwn - cp -a $(BUILD_WORK)/xpwn/includes/* $(BUILD_STAGE)/xpwn/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/include/xpwn -- cp -a $(BUILD_WORK)/xpwn/{ipsw-patch/libxpwn,minizip/libminizip,common/libcommon,hfs/libhfs,dmg/libdmg}.a $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/xpwn -- cp -a $(BUILD_WORK)/xpwn/{ipsw-patch/libxpwn,minizip/libminizip,common/libcommon,hfs/libhfs,dmg/libdmg}.a $(BUILD_STAGE)/xpwn/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/xpwn -+ cp -a $(BUILD_WORK)/xpwn/{ipsw-patch/libxpwn,common/libcommon}.a $(BUILD_BASE)$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/xpwn -+ cp -a $(BUILD_WORK)/xpwn/{ipsw-patch/libxpwn,common/libcommon}.a $(BUILD_STAGE)/xpwn/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/lib/xpwn - touch $(BUILD_WORK)/xpwn/.build_complete - endif - diff --git a/.github/workflows/ubuntu.sh b/.github/workflows/ubuntu.sh deleted file mode 100755 index 988331df..00000000 --- a/.github/workflows/ubuntu.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -echo 'step 1:' -set -e -export LLVM_PATH=/home/runner/work/futurerestore/futurerestore/.github/llvm -export PATH=${LLVM_PATH}/bin:${PATH} -export DIR=$(pwd) -export BASE=/home/runner/work/futurerestore/futurerestore/.github/workflows -export CC_ARGS="CC=${LLVM_PATH}/bin/clang CXX=${LLVM_PATH}/bin/clang++ LD=${LLVM_PATH}/bin/ld64.lld RANLIB=/usr/bin/ranlib AR=/usr/bin/ar" -sudo ln -sf ${LLVM_PATH}/bin/ld64.lld /usr/bin/lld -sudo ln -sf ${LLVM_PATH}/bin/ld64.lld /usr/bin/ld -export CONF_ARGS="--disable-dependency-tracking --disable-silent-rules --prefix=/usr/local" -export LD_ARGS="-Wl,--allow-multiple-definition -L/usr/lib/x86_64-linux-gnu -lusb-1.0 -lzstd -llzma -lbz2 -L/usr/local/lib -lxpwn -lcommon -llzfse -lusbmuxd-2.0 -limg4tool -lgeneral -lirecovery-1.0 -lzip -lipatcher -loffsetfinder64 -limobiledevice-1.0 -lfragmentzip -linsn -lplist-2.0 -lplist++-2.0" -export JNUM="-j32" -sudo chown -R $USER:$USER /usr/local -sudo chown -R $USER:$USER /lib/udev/rules.d -cd ${BASE} -echo 'step 2:' -zstd -dk ubuntu.tar.zst -sudo tar xf ${BASE}/ubuntu.tar -C / --warning=none || true || true -sudo apt update -y -sudo apt install curl build-essential checkinstall git autoconf automake libtool-bin pkg-config cmake zlib1g-dev libssl-dev libbz2-dev libusb-1.0-0-dev libusb-dev libpng-dev libreadline-dev libcurl4-openssl-dev libzstd-dev liblzma-dev -y -curl -LO https://opensource.apple.com/tarballs/cctools/cctools-927.0.2.tar.gz -mkdir cctools-tmp -tar -xzf cctools-927.0.2.tar.gz -C cctools-tmp/ -sed -i 's_#include_//_g' cctools-tmp/cctools-927.0.2/include/mach-o/loader.h -sed -i -e 's==\n#include \ntypedef int integer_t;\ntypedef integer_t cpu_type_t;\ntypedef integer_t cpu_subtype_t;\ntypedef integer_t cpu_threadtype_t;\ntypedef int vm_prot_t;=g' cctools-tmp/cctools-927.0.2/include/mach-o/loader.h -sudo cp -LRP cctools-tmp/cctools-927.0.2/include/* /usr/local/include/ -echo 'step 3:' -cd ${BASE}/../.. -export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n') -git submodule init; git submodule update --recursive -cd external/tsschecker -git submodule init; git submodule update --recursive -cd ${BASE}/../.. -echo 'step 5:' -./autogen.sh $CONF_ARGS $CC_ARGS LDFLAGS="$LD_ARGS" -make $JNUM -sudo make $JNUM install -echo 'step 6:' -cp /usr/local/bin/futurerestore ${BASE}/futurerestore-${FUTURERESTORE_VERSION_RELEASE} -cd ${BASE} -tar cpJvf ${BASE}/futurerestore-${FUTURERESTORE_VERSION_RELEASE}-Ubuntu.tar.xz futurerestore-${FUTURERESTORE_VERSION_RELEASE} -ldd ${BASE}/futurerestore-${FUTURERESTORE_VERSION_RELEASE} || true -./futurerestore-${FUTURERESTORE_VERSION_RELEASE} || true -echo 'End' diff --git a/.github/workflows/ubuntu.tar.zst b/.github/workflows/ubuntu.tar.zst deleted file mode 100644 index 32fc9b6b..00000000 Binary files a/.github/workflows/ubuntu.tar.zst and /dev/null differ diff --git a/futurerestore/futurerestore.cpp b/futurerestore/futurerestore.cpp index c07ca28d..a453b9a8 100644 --- a/futurerestore/futurerestore.cpp +++ b/futurerestore/futurerestore.cpp @@ -465,7 +465,7 @@ void futurerestore::enterPwnRecovery(plist_t build_identity, string bootargs){ #ifndef HAVE_LIBIPATCHER reterror("compiled without libipatcher"); #else - bootargs = "rd=md0 -restore -v serial=3 debug=0x14e keepsyms=1 amfi=0xff amfi_unrestrict_task_for_pid=1 amfi_allow_any_signature=1 amfi_get_out_of_my_way=1"; + bootargs = "rd=md0 -restore -progress nand-enable-reformat=0x1 -v serial=0x3 debug=0x14e keepsyms=0x1 amfi=0xff amfi_unrestrict_task_for_pid=0x0 amfi_allow_any_signature=0x1 amfi_get_out_of_my_way=0x1 cs_enforcement_disable=0x1"; idevicerestore_mode_t *mode = 0; libipatcher::fw_key iBSSKeys; libipatcher::fw_key iBECKeys;