mirror of
https://github.com/tihmstar/futurerestore.git
synced 2025-07-07 15:50:32 +00:00
Port futurerestore to from autotools to cmake
This commit is contained in:
parent
ecc32003b0
commit
f7fa07e2ba
29
.github/workflows/ci.yml
vendored
29
.github/workflows/ci.yml
vendored
|
@ -20,42 +20,37 @@ jobs:
|
||||||
- name: macOS Build
|
- name: macOS Build
|
||||||
id: macOS-Build
|
id: macOS-Build
|
||||||
run: |
|
run: |
|
||||||
cd /Users/runner/work/futurerestore/futurerestore/.github/workflows
|
/Users/runner/work/futurerestore/futurerestore/.github/workflows/mac-bootstrap.sh
|
||||||
./mac-bootstrap.sh
|
/Users/runner/work/futurerestore/futurerestore/.github/workflows/mac-build.sh
|
||||||
./Builder macOS x86_64 release 1300 10.12 &
|
/Users/runner/work/futurerestore/futurerestore/.github/workflows/mac-post.sh
|
||||||
./Builder macOS x86_64 debug 1300 10.12 &
|
|
||||||
./Builder macOS arm64 release 1700 11.0 &
|
|
||||||
./Builder macOS arm64 debug 1700 11.0 &
|
|
||||||
wait
|
|
||||||
./mac-post.sh
|
|
||||||
- name: macOS x86_64 RELEASE Archive
|
- name: macOS x86_64 RELEASE Archive
|
||||||
id: macOS-x86_64-RELEASE-Archive
|
id: macOS-x86_64-RELEASE-Archive
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: futurerestore-macOS-x86_64-RELEASE
|
name: futurerestore-macOS-x86_64-RELEASE
|
||||||
path: |
|
path: |
|
||||||
/Users/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-macOS-x86_64-*-RELEASE.tar.xz
|
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-x86_64-*-RELEASE.tar.xz
|
||||||
- name: macOS x86_64 DEBUG Archive
|
- name: macOS x86_64 DEBUG Archive
|
||||||
id: macOS-x86_64-DEBUG-Archive
|
id: macOS-x86_64-DEBUG-Archive
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: futurerestore-macOS-x86_64-DEBUG
|
name: futurerestore-macOS-x86_64-DEBUG
|
||||||
path: |
|
path: |
|
||||||
/Users/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-macOS-x86_64-*-DEBUG.tar.xz
|
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-x86_64-*-DEBUG.tar.xz
|
||||||
- name: macOS arm64 RELEASE Archive
|
- name: macOS arm64 RELEASE Archive
|
||||||
id: macOS-arm64-RELEASE-Archive
|
id: macOS-arm64-RELEASE-Archive
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: futurerestore-macOS-arm64-RELEASE
|
name: futurerestore-macOS-arm64-RELEASE
|
||||||
path: |
|
path: |
|
||||||
/Users/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-macOS-arm64-*-RELEASE.tar.xz
|
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-arm64-*-RELEASE.tar.xz
|
||||||
- name: macOS arm64 DEBUG Archive
|
- name: macOS arm64 DEBUG Archive
|
||||||
id: macOS-arm64-DEBUG-Archive
|
id: macOS-arm64-DEBUG-Archive
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: futurerestore-macOS-arm64-DEBUG
|
name: futurerestore-macOS-arm64-DEBUG
|
||||||
path: |
|
path: |
|
||||||
/Users/runner/work/futurerestore/futurerestore/.github/workflows/futurerestore-macOS-arm64-*-DEBUG.tar.xz
|
/Users/runner/work/futurerestore/futurerestore/futurerestore-macOS-arm64-*-DEBUG.tar.xz
|
||||||
Linux:
|
Linux:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -71,13 +66,9 @@ jobs:
|
||||||
image: debian:buster-slim
|
image: debian:buster-slim
|
||||||
options: -v ${{ github.workspace }}/..:/tmp/Builder/repos/
|
options: -v ${{ github.workspace }}/..:/tmp/Builder/repos/
|
||||||
run: |
|
run: |
|
||||||
cd /tmp/Builder/repos/futurerestore/.github/workflows/
|
/tmp/Builder/repos/futurerestore/.github/workflows/linux-bootstrap.sh
|
||||||
./linux-bootstrap.sh
|
/tmp/Builder/repos/futurerestore/.github/workflows/linux-build.sh
|
||||||
./Builder Linux cctools
|
/tmp/Builder/repos/futurerestore/.github/workflows/linux-post.sh
|
||||||
./Builder Linux x86_64 Release &
|
|
||||||
./Builder Linux x86_64 Debug &
|
|
||||||
wait
|
|
||||||
./linux-post.sh
|
|
||||||
- name: Linux x86_64 RELEASE Build
|
- name: Linux x86_64 RELEASE Build
|
||||||
run: |
|
run: |
|
||||||
mkdir -p /home/runner/work/futurerestore/futurerestore/.github/workflows/
|
mkdir -p /home/runner/work/futurerestore/futurerestore/.github/workflows/
|
||||||
|
|
1701
.github/workflows/config.guess
vendored
1701
.github/workflows/config.guess
vendored
File diff suppressed because it is too large
Load diff
20
.github/workflows/linux-bootstrap.sh
vendored
20
.github/workflows/linux-bootstrap.sh
vendored
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
export TMPDIR=/tmp
|
export TMPDIR=/tmp
|
||||||
export BASE=${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
export WORKFLOW_ROOT=${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
||||||
|
export DEP_ROOT=${TMPDIR}/Builder/repos/futurerestore/dep_root
|
||||||
|
export BASE=${TMPDIR}/Builder/repos/futurerestore/
|
||||||
|
|
||||||
#sed -i 's/deb\.debian\.org/ftp.de.debian.org/g' /etc/apt/sources.list
|
#sed -i 's/deb\.debian\.org/ftp.de.debian.org/g' /etc/apt/sources.list
|
||||||
apt-get -qq update
|
apt-get -qq update
|
||||||
|
@ -12,20 +14,24 @@ cp -RpP /usr/bin/ld /
|
||||||
rm -rf /usr/bin/ld /usr/lib/x86_64-linux-gnu/lib{usb-1.0,png*,readline}.so*
|
rm -rf /usr/bin/ld /usr/lib/x86_64-linux-gnu/lib{usb-1.0,png*,readline}.so*
|
||||||
cd ${TMPDIR}/Builder/repos/futurerestore
|
cd ${TMPDIR}/Builder/repos/futurerestore
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
cd ${BASE}
|
cd ${WORKFLOW_ROOT}
|
||||||
curl -sO https://apt.llvm.org/llvm.sh
|
curl -sO https://apt.llvm.org/llvm.sh
|
||||||
chmod +x llvm.sh
|
chmod +x llvm.sh
|
||||||
./llvm.sh 13 all
|
./llvm.sh 13 all
|
||||||
ln -sf /usr/bin/ld.lld-13 /usr/bin/ld
|
ln -sf /usr/bin/ld.lld-13 /usr/bin/ld
|
||||||
curl -sO https://cdn.cryptiiiic.com/bootstrap/Builder_Linux.tar.zst &
|
#curl -sO https://cdn.cryptiiiic.com/bootstrap/Builder_Linux.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/bootstrap/linux_fix.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/bootstrap/linux_fix.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/deps/static/Linux/x86_64/Linux_x86_64_Release_Latest.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/deps/static/Linux/x86_64/Linux_x86_64_Release_Latest.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/deps/static/Linux/x86_64/Linux_x86_64_Debug_Latest.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/deps/static/Linux/x86_64/Linux_x86_64_Debug_Latest.tar.zst &
|
||||||
|
curl -sLO https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-x86_64.tar.gz &
|
||||||
wait
|
wait
|
||||||
tar xf Linux_x86_64_Release_Latest.tar.zst -C ${TMPDIR}/Builder &
|
mkdir -p ${DEP_ROOT}/Linux_x86_64_{Release,Debug}
|
||||||
tar xf Linux_x86_64_Debug_Latest.tar.zst -C ${TMPDIR}/Builder &
|
tar xf Linux_x86_64_Release_Latest.tar.zst -C ${DEP_ROOT}/Linux_x86_64_Release &
|
||||||
|
tar xf Linux_x86_64_Debug_Latest.tar.zst -C ${DEP_ROOT}/Linux_x86_64_Debug &
|
||||||
tar xf linux_fix.tar.zst -C ${TMPDIR}/Builder &
|
tar xf linux_fix.tar.zst -C ${TMPDIR}/Builder &
|
||||||
tar xf Builder_Linux.tar.zst &
|
tar xf cmake-3.23.2-linux-x86_64.tar.gz
|
||||||
|
cp -RpP cmake-3.23.2-linux-x86_64/* /usr/local/ || true
|
||||||
|
#tar xf Builder_Linux.tar.zst &
|
||||||
wait
|
wait
|
||||||
rm -rf "*.zst"
|
rm -rf "*.zst"
|
||||||
cd ${BASE}
|
cd ${WORKFLOW_ROOT}
|
||||||
|
|
18
.github/workflows/linux-build.sh
vendored
Executable file
18
.github/workflows/linux-build.sh
vendored
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
export TMPDIR=/tmp
|
||||||
|
export WORKFLOW_ROOT=${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
||||||
|
export DEP_ROOT=${TMPDIR}/Builder/repos/futurerestore/dep_root
|
||||||
|
export BASE=${TMPDIR}/Builder/repos/futurerestore/
|
||||||
|
|
||||||
|
cd ${BASE}
|
||||||
|
ln -sf ${DEP_ROOT}/Linux_x86_64_Release/{lib/,include/} ${DEP_ROOT}/
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-release-x86_64 -DARCH=x86_64 -DCMAKE_C_COMPILER=clang-13 -DCMAKE_CXX_COMPILER=clang++-13 -DCMAKE_LINKER=ld.lld-13
|
||||||
|
make -j4 -l4 -C cmake-build-release-x86_64
|
||||||
|
|
||||||
|
cd ${BASE}
|
||||||
|
ln -sf ${DEP_ROOT}/Linux_x86_64_Debug/{lib/,include/} ${DEP_ROOT}/
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug-x86_64 -DARCH=x86_64 -DCMAKE_C_COMPILER=clang-13 -DCMAKE_CXX_COMPILER=clang++-13 -DCMAKE_LINKER=ld.lld-13
|
||||||
|
make -j4 -l4 -C cmake-build-debug-x86_64
|
||||||
|
llvm-strip-13 -s cmake-build-release-x86_64/src/futurerestore
|
12
.github/workflows/linux-post.sh
vendored
12
.github/workflows/linux-post.sh
vendored
|
@ -2,16 +2,18 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
export TMPDIR=/tmp
|
export TMPDIR=/tmp
|
||||||
export BASE=${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
export WORKFLOW_ROOT=${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
||||||
|
export DEP_ROOT=${TMPDIR}/Builder/repos/futurerestore/dep_root
|
||||||
|
export BASE=${TMPDIR}/Builder/repos/futurerestore/
|
||||||
|
|
||||||
cd ${BASE}/../../
|
cd ${BASE}
|
||||||
export FUTURERESTORE_VERSION=$(git rev-list --count HEAD | tr -d '\n')
|
export FUTURERESTORE_VERSION=$(git rev-list --count HEAD | tr -d '\n')
|
||||||
export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n')
|
export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n')
|
||||||
cd ${BASE}
|
cd ${WORKFLOW_ROOT}
|
||||||
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" > name1.txt
|
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" > name1.txt
|
||||||
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" > name2.txt
|
echo "futurerestore-Linux-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" > name2.txt
|
||||||
cp -RpP "${TMPDIR}/Builder/linux_fix.sh" linux_fix.sh
|
cp -RpP "${TMPDIR}/Builder/linux_fix.sh" linux_fix.sh
|
||||||
cp -RpP "${TMPDIR}/Builder/Linux_x86_64_Release/bin/futurerestore" futurerestore
|
cp -RpP "${BASE}/cmake-build-release-x86_64/src/futurerestore" futurerestore
|
||||||
tar cpPJvf "futurerestore1.tar.xz" futurerestore linux_fix.sh
|
tar cpPJvf "futurerestore1.tar.xz" futurerestore linux_fix.sh
|
||||||
cp -RpP "${TMPDIR}/Builder/Linux_x86_64_Debug/bin/futurerestore" futurerestore
|
cp -RpP "${BASE}/cmake-build-debug-x86_64/src/futurerestore" futurerestore
|
||||||
tar cpPJvf "futurerestore2.tar.xz" futurerestore linux_fix.sh
|
tar cpPJvf "futurerestore2.tar.xz" futurerestore linux_fix.sh
|
||||||
|
|
37
.github/workflows/mac-bootstrap.sh
vendored
37
.github/workflows/mac-bootstrap.sh
vendored
|
@ -1,33 +1,36 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
export BASE=/Users/runner/work/futurerestore/futurerestore/.github/workflows
|
export WORKFLOW_ROOT=/Users/runner/work/futurerestore/futurerestore/.github/workflows
|
||||||
|
export DEP_ROOT=/Users/runner/work/futurerestore/futurerestore/dep_root
|
||||||
|
export BASE=/Users/runner/work/futurerestore/futurerestore/
|
||||||
|
|
||||||
cd ${BASE}
|
cd ${WORKFLOW_ROOT}
|
||||||
curl -sO https://cdn.cryptiiiic.com/bootstrap/bootstrap_x86_64.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/bootstrap/bootstrap_x86_64.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/bootstrap/Builder_macOS.tar.zst &
|
# curl -sO https://cdn.cryptiiiic.com/bootstrap/Builder_macOS.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/x86_64/macOS_x86_64_1300_Release_Latest.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/x86_64/macOS_x86_64_Release_Latest.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/arm64/macOS_arm64_1700_Release_Latest.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/arm64/macOS_arm64_Release_Latest.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/x86_64/macOS_x86_64_1300_Debug_Latest.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/x86_64/macOS_x86_64_Debug_Latest.tar.zst &
|
||||||
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/arm64/macOS_arm64_1700_Debug_Latest.tar.zst &
|
curl -sO https://cdn.cryptiiiic.com/deps/static/macOS/arm64/macOS_arm64_Debug_Latest.tar.zst &
|
||||||
wait
|
wait
|
||||||
sudo gtar xf ${BASE}/bootstrap_x86_64.tar.zst -C / --warning=none || true || true &
|
sudo gtar xf ${WORKFLOW_ROOT}/bootstrap_x86_64.tar.zst -C / --warning=none || true || true &
|
||||||
echo "${PROCURSUS}/bin" | sudo tee /etc/paths1
|
echo "${PROCURSUS}/bin" | sudo tee /etc/paths1
|
||||||
echo "${PROCURSUS}/libexec/gnubin" | sudo tee /etc/paths1
|
echo "${PROCURSUS}/libexec/gnubin" | sudo tee /etc/paths1
|
||||||
cat /etc/paths | sudo tee -a /etc/paths1
|
cat /etc/paths | sudo tee -a /etc/paths1
|
||||||
sudo mv /etc/paths{1,}
|
sudo mv /etc/paths{1,}
|
||||||
wait
|
wait
|
||||||
mkdir -p ${TMPDIR}/Builder/repos
|
mkdir -p ${DEP_ROOT}/macOS_x86_64_Release ${DEP_ROOT}/macOS_x86_64_Debug ${DEP_ROOT}/macOS_arm64_Release ${DEP_ROOT}/macOS_arm64_Debug
|
||||||
gtar xf macOS_x86_64_1300_Release_Latest.tar.zst -C ${TMPDIR}/Builder &
|
gtar xf macOS_x86_64_Release_Latest.tar.zst -C ${DEP_ROOT}/macOS_x86_64_Release &
|
||||||
gtar xf macOS_x86_64_1300_Debug_Latest.tar.zst -C ${TMPDIR}/Builder &
|
gtar xf macOS_x86_64_Debug_Latest.tar.zst -C ${DEP_ROOT}/macOS_x86_64_Debug &
|
||||||
gtar xf macOS_arm64_1700_Release_Latest.tar.zst -C ${TMPDIR}/Builder &
|
gtar xf macOS_arm64_Release_Latest.tar.zst -C ${DEP_ROOT}/macOS_arm64_Release &
|
||||||
gtar xf macOS_arm64_1700_Debug_Latest.tar.zst -C ${TMPDIR}/Builder &
|
gtar xf macOS_arm64_Debug_Latest.tar.zst -C ${DEP_ROOT}/macOS_arm64_Debug &
|
||||||
wait
|
wait
|
||||||
gtar xf ${BASE}/Builder_macOS.tar.zst &
|
# gtar xf ${BASE}/Builder_macOS.tar.zst &
|
||||||
sudo ${PROCURSUS}/bin/apt-get update -qq
|
sudo ${PROCURSUS}/bin/apt-get update -qq
|
||||||
sudo ${PROCURSUS}/bin/apt-get dist-upgrade -yqq
|
sudo ${PROCURSUS}/bin/apt-get dist-upgrade -yqq
|
||||||
|
sudo ${PROCURSUS}/bin/apt-get install llvm-utils -yqq
|
||||||
sudo mv /usr/local/bin{,1}
|
sudo mv /usr/local/bin{,1}
|
||||||
ln -sf ${BASE}/../../ ${TMPDIR}/Builder/repos/futurerestore
|
cd ${BASE}
|
||||||
cd ${TMPDIR}/Builder/repos/futurerestore
|
git submodule update --init --recursive
|
||||||
|
cd ${BASE}/external/tsschecker
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
cd ${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
|
||||||
|
|
25
.github/workflows/mac-build.sh
vendored
Executable file
25
.github/workflows/mac-build.sh
vendored
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
export WORKFLOW_ROOT=/Users/runner/work/futurerestore/futurerestore/.github/workflows
|
||||||
|
export DEP_ROOT=/Users/runner/work/futurerestore/futurerestore/dep_root
|
||||||
|
export BASE=/Users/runner/work/futurerestore/futurerestore/
|
||||||
|
|
||||||
|
cd /Users/runner/work/futurerestore/futurerestore/
|
||||||
|
ln -sf ${DEP_ROOT}/macOS_x86_64_Release/{lib/,include/} ${DEP_ROOT}/
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-release-x86_64 -DARCH=x86_64
|
||||||
|
make -j4 -l4 -C cmake-build-release-x86_64
|
||||||
|
|
||||||
|
ln -sf ${DEP_ROOT}/macOS_x86_64_Debug/{lib/,include/} ${DEP_ROOT}/
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug-x86_64 -DARCH=x86_64
|
||||||
|
make -j4 -l4 -C cmake-build-debug-x86_64
|
||||||
|
|
||||||
|
ln -sf ${DEP_ROOT}/macOS_arm64_Release/{lib/,include/} ${DEP_ROOT}/
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-release-arm64 -DARCH=arm64
|
||||||
|
make -j4 -l4 -C cmake-build-release-arm64
|
||||||
|
|
||||||
|
ln -sf ${DEP_ROOT}/macOS_arm64_Debug/{lib/,include/} ${DEP_ROOT}/
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug-arm64 -DARCH=arm64
|
||||||
|
make -j4 -l4 -C cmake-build-debug-arm64
|
||||||
|
llvm-strip -s cmake-build-release-x86_64/src/futurerestore
|
||||||
|
llvm-strip -s cmake-build-release-arm64/src/futurerestore
|
19
.github/workflows/mac-post.sh
vendored
19
.github/workflows/mac-post.sh
vendored
|
@ -1,17 +1,14 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
export BASE=${TMPDIR}/Builder/repos/futurerestore/.github/workflows
|
export WORKFLOW_ROOT=/Users/runner/work/futurerestore/futurerestore/.github/workflows
|
||||||
|
export DEP_ROOT=/Users/runner/work/futurerestore/futurerestore/dep_root
|
||||||
|
export BASE=/Users/runner/work/futurerestore/futurerestore/
|
||||||
|
|
||||||
cd ${BASE}/../../
|
cd ${BASE}
|
||||||
export FUTURERESTORE_VERSION=$(git rev-list --count HEAD | tr -d '\n')
|
export FUTURERESTORE_VERSION=$(git rev-list --count HEAD | tr -d '\n')
|
||||||
export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n')
|
export FUTURERESTORE_VERSION_RELEASE=$(cat version.txt | tr -d '\n')
|
||||||
cd ${BASE}
|
tar cpPJf "futurerestore-macOS-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" -C cmake-build-release-x86_64/src futurerestore
|
||||||
cp -RpP "${TMPDIR}/Builder/macOS_x86_64_1300_Release/bin/futurerestore" futurerestore
|
tar cpPJf "futurerestore-macOS-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" -C cmake-build-debug-x86_64/src futurerestore
|
||||||
tar cpPJf "futurerestore-macOS-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" futurerestore
|
tar cpPJf "futurerestore-macOS-arm64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" -C cmake-build-release-arm64/src futurerestore
|
||||||
cp -RpP "${TMPDIR}/Builder/macOS_x86_64_1300_Debug/bin/futurerestore" futurerestore
|
tar cpPJf "futurerestore-macOS-arm64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" -C cmake-build-debug-arm64/src futurerestore
|
||||||
tar cpPJf "futurerestore-macOS-x86_64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" futurerestore
|
|
||||||
cp -RpP "${TMPDIR}/Builder/macOS_arm64_1700_Release/bin/futurerestore" futurerestore
|
|
||||||
tar cpPJf "futurerestore-macOS-arm64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-RELEASE.tar.xz" futurerestore
|
|
||||||
cp -RpP "${TMPDIR}/Builder/macOS_arm64_1700_Debug/bin/futurerestore" futurerestore
|
|
||||||
tar cpPJf "futurerestore-macOS-arm64-${FUTURERESTORE_VERSION_RELEASE}-Build_${FUTURERESTORE_VERSION}-DEBUG.tar.xz" futurerestore
|
|
||||||
|
|
52
.gitignore
vendored
52
.gitignore
vendored
|
@ -1,29 +1,65 @@
|
||||||
|
!dep_root/include
|
||||||
|
!dep_root/include/.keep
|
||||||
|
!dep_root/lib
|
||||||
|
!dep_root/lib/.keep
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
.vscode
|
*.[oa]
|
||||||
*.a
|
*.a
|
||||||
*.o
|
*.diff
|
||||||
|
*.in
|
||||||
*.la
|
*.la
|
||||||
*.lo
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.patch
|
||||||
|
*.po
|
||||||
*.so
|
*.so
|
||||||
*/.libs
|
*.swp
|
||||||
*/.deps
|
*/.deps
|
||||||
|
*/.deps/*
|
||||||
|
*/.libs
|
||||||
|
*/all.h*
|
||||||
|
*/futurerestore*
|
||||||
|
*/tsschecker*
|
||||||
*Makefile
|
*Makefile
|
||||||
*Makefile.in
|
*Makefile.in
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
.build_complete
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
|
autom4te.cache/*
|
||||||
|
build
|
||||||
|
cmake-build-debug
|
||||||
|
cmake-build-release
|
||||||
|
cmake_install.cmake
|
||||||
compile
|
compile
|
||||||
!.github/workflows/config.guess
|
|
||||||
config.*
|
config.*
|
||||||
|
config.guess
|
||||||
|
config.h
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
configure
|
configure
|
||||||
|
configure~
|
||||||
|
dep_root/*
|
||||||
|
dep_root/include/*
|
||||||
|
dep_root/lib/*
|
||||||
depcomp
|
depcomp
|
||||||
install-sh
|
install-sh
|
||||||
libtool
|
libtool
|
||||||
ltmain.sh
|
ltmain.sh
|
||||||
m4
|
m4
|
||||||
|
m4/*
|
||||||
|
main
|
||||||
missing
|
missing
|
||||||
*/futurerestore*
|
mkinstalldirs
|
||||||
|
py-compile
|
||||||
|
src/.libs
|
||||||
|
src/idevicerestore
|
||||||
stamp-h1
|
stamp-h1
|
||||||
|
swig/*
|
||||||
xcuserdata
|
xcuserdata
|
||||||
.build_complete
|
|
||||||
.idea
|
|
||||||
configure~
|
|
||||||
|
|
4
.gitmodules
vendored
4
.gitmodules
vendored
|
@ -1,8 +1,8 @@
|
||||||
[submodule "external/idevicerestore"]
|
[submodule "idevicerestore"]
|
||||||
path = external/idevicerestore
|
path = external/idevicerestore
|
||||||
url = https://github.com/futurerestore/idevicerestore.git
|
url = https://github.com/futurerestore/idevicerestore.git
|
||||||
branch = main
|
branch = main
|
||||||
[submodule "external/tsschecker"]
|
[submodule "tsschecker"]
|
||||||
path = external/tsschecker
|
path = external/tsschecker
|
||||||
url = https://github.com/1Conan/tsschecker.git
|
url = https://github.com/1Conan/tsschecker.git
|
||||||
branch = master
|
branch = master
|
||||||
|
|
41
CMakeLists.txt
Normal file
41
CMakeLists.txt
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
cmake_minimum_required(VERSION 3.22)
|
||||||
|
set(SUBPROJECT_BUILD 1)
|
||||||
|
if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
|
if(NOT DEFINED NO_XCODE AND NOT DEFINED ENV{NO_XCODE})
|
||||||
|
execute_process(COMMAND xcrun --find clang WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE CC OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND xcrun --find clang++ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND xcrun --find ar WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE AR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND xcrun --find ld WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE LD OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND xcrun --show-sdk-path WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE SYSROOT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
set(CMAKE_C_COMPILER "${CC}")
|
||||||
|
set(CMAKE_CXX_COMPILER "${CXX}")
|
||||||
|
endif()
|
||||||
|
if(NOT DEFINED ARCH)
|
||||||
|
set(ARCH "$ENV{ARCH}")
|
||||||
|
if(ARCH STREQUAL "")
|
||||||
|
set(ARCH "${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if("${ARCH}" STREQUAL "x86_64" OR "$ENV{ARCH}" STREQUAL "x86_64")
|
||||||
|
set(MINVER -mmacosx-version-min=10.12)
|
||||||
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12)
|
||||||
|
else()
|
||||||
|
set(MINVER -mmacosx-version-min=11.0)
|
||||||
|
set(CMAKE_OSX_DEPLOYMENT_TARGET 11.0)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ${ARCH} -isysroot ${SYSROOT} ${MINVER} -fembed-bitcode=off -flto=thin -pthread")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch ${ARCH} -isysroot ${SYSROOT} ${MINVER} -fembed-bitcode=off -flto=thin -pthread")
|
||||||
|
elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--allow-multiple-definition -pthread")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--allow-multiple-definition -pthread")
|
||||||
|
endif()
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "-Os -DNDEBUG")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "-Os -DNDEBUG")
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "-g -O0 -DDEBUG")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -DDEBUG")
|
||||||
|
set(CMAKE_C_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
project(futurerestore)
|
||||||
|
add_subdirectory(external/tsschecker)
|
||||||
|
add_subdirectory(external/idevicerestore)
|
||||||
|
add_subdirectory(src)
|
62
COMPILING.md
Normal file
62
COMPILING.md
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# Compiling Futurerestore
|
||||||
|
|
||||||
|
# Required/Optional Dependencies
|
||||||
|
* ## External libs
|
||||||
|
Make sure these are installed
|
||||||
|
* [curl](https://github.com/curl/curl) (Linux/Windows only, macOS already has curl preinstalled);
|
||||||
|
* [openssl 3.0.3](https://github.com/openssl/openssl) (or CommonCrypto on macOS);
|
||||||
|
* [libusb 1.0.25](https://github.com/libusb/libusb) (Linux/Windows only, macOS can use IOKit for libirecovery);
|
||||||
|
* [libzip](https://github.com/nih-at/libzip);
|
||||||
|
* [libplist](https://github.com/libimobiledevice/libplist);
|
||||||
|
* [libusbmuxd](https://github.com/libimobiledevice/libusbmuxd);
|
||||||
|
* [libirecovery](https://github.com/libimobiledevice/libirecovery);
|
||||||
|
* [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice);
|
||||||
|
* [libimobiledevice-glue](https://github.com/libimobiledevice/libimobiledevice-glue);
|
||||||
|
* [libpng16](https://github.com/glennrp/libpng);
|
||||||
|
* [xpwn(fork)](https://github.com/nyuszika7h/xpwn);
|
||||||
|
* [libgeneral](https://github.com/tihmstar/libgeneral);
|
||||||
|
* [libfragmentzip](https://github.com/tihmstar/libfragmentzip);
|
||||||
|
* [libinsn](https://github.com/tihmstar/libinsn);
|
||||||
|
* [lzfse](https://github.com/lzfse/lzfse) (Linux/Windows only, macOS has built in libcompression);
|
||||||
|
* [img4tool](https://github.com/tihmstar/img4tool);
|
||||||
|
* [liboffsetfinder64(fork))](https://github.com/Cryptiiiic/liboffsetfinder64);
|
||||||
|
* [libipatcher(fork)](https://github.com/Cryptiiiic/libipatcher)
|
||||||
|
|
||||||
|
* ## Submodules
|
||||||
|
Make sure these projects compile on your system (install it's dependencies):
|
||||||
|
|
||||||
|
* [tsschecker(fork)](https://github.com/1Conan/tsschecker);
|
||||||
|
* * [jssy](https://github.com/tihmstar/jssy) (This is a submodule of tsschecker);
|
||||||
|
* [idevicerestore(fork)](https://github.com/futurerestore/idevicerestore)
|
||||||
|
|
||||||
|
If you are cloning this repository you may run:
|
||||||
|
|
||||||
|
```git clone https://github.com/futurerestore/futurerestore --recursive```
|
||||||
|
|
||||||
|
which will clone these submodules for you.
|
||||||
|
|
||||||
|
# Building from source
|
||||||
|
* ## dep_root
|
||||||
|
After obtaining all the required/optional dependencies you can either install them to your
|
||||||
|
|
||||||
|
system for building dynamically or place the static libs in `dep_root/lib` and headers in
|
||||||
|
|
||||||
|
`dep_root/include` for building statically
|
||||||
|
* ## build.sh
|
||||||
|
Executing build.sh will configure and building in debug mode by default and an arch must be provided.
|
||||||
|
* Example: `./build.sh -DARCH=x86_64` or `ARCH=x86_64 ./build.sh`
|
||||||
|
|
||||||
|
If you want to build in release mode pass in the RELEASE=1 environment variable.
|
||||||
|
* Example: `RELEASE=1 ./build.sh -DARCH=x86_64` or `RELEASE=0 ./build.sh -DARCH=x86_64`
|
||||||
|
|
||||||
|
If you want to overwrite the compiler on mac you can provide `NO_XCODE` flag.
|
||||||
|
* Example: `CC=gcc CXX=g++ ./build.sh -DARCH=x86_64 -DNO_XCODE`
|
||||||
|
* or `NO_XCODE=1 CC=gcc CXX=g++ ./build.sh -DARCH=x86_64`
|
||||||
|
|
||||||
|
If you want to disable cmake reconfigure for each build, you can provide the `NO_CLEAN` flag.
|
||||||
|
* Example: `NO_CLEAN=1 ./build.sh -DARCH=x86_64`
|
||||||
|
* By default it will remove cmake and cache and reconfigure for each subsequent build.
|
||||||
|
|
||||||
|
The compiled binary will be located at:
|
||||||
|
* `cmake-build-release/src/futurerestore` for release build
|
||||||
|
* `cmake-build-debug/src/futurerestore` for debug builds
|
|
@ -1,4 +0,0 @@
|
||||||
AUTOMAKE_OPTIONS = foreign
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
SUBDIRS = external/idevicerestore external/tsschecker futurerestore
|
|
||||||
install installdirs: SUBDIRS = futurerestore
|
|
36
README.md
36
README.md
|
@ -23,41 +23,11 @@ FutureRestore is a modified idevicerestore wrapper, which allows manually specif
|
||||||
* Odysseus for 32-bit & 64-bit (A7-A11) devices
|
* Odysseus for 32-bit & 64-bit (A7-A11) devices
|
||||||
* Re-restoring 32-bit devices to iOS 9.x with [alitek123](https://github.com/alitek12)'s no-ApNonce method (alternative — [idevicererestore](https://downgrade.party)).
|
* Re-restoring 32-bit devices to iOS 9.x with [alitek123](https://github.com/alitek12)'s no-ApNonce method (alternative — [idevicererestore](https://downgrade.party)).
|
||||||
|
|
||||||
# Dependencies
|
# Compiling
|
||||||
* ## External libs
|
See [COMPILING](COMPILING.md)
|
||||||
Make sure these are installed
|
|
||||||
* [curl](https://github.com/curl/curl) (Linux/Windows only, macOS already has curl preinstalled);
|
|
||||||
* [openssl 1.1.1](https://github.com/openssl/openssl) (or CommonCrypto on macOS);
|
|
||||||
* [libusb 1.0.24](https://github.com/libusb/libusb) (Linux/Windows only, macOS can use IOKit for libirecovery);
|
|
||||||
* [libzip](https://github.com/nih-at/libzip);
|
|
||||||
* [libplist](https://github.com/libimobiledevice/libplist);
|
|
||||||
* [libusbmuxd](https://github.com/libimobiledevice/libusbmuxd);
|
|
||||||
* [libirecovery](https://github.com/libimobiledevice/libirecovery);
|
|
||||||
* [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice);
|
|
||||||
* [libpng16](https://github.com/glennrp/libpng);
|
|
||||||
* [xpwn(fork)](https://github.com/nyuszika7h/xpwn);
|
|
||||||
* [libgeneral](https://github.com/tihmstar/libgeneral);
|
|
||||||
* [libfragmentzip](https://github.com/tihmstar/libfragmentzip);
|
|
||||||
* [libinsn](https://github.com/tihmstar/libinsn);
|
|
||||||
* [lzfse](https://github.com/lzfse/lzfse);
|
|
||||||
* [img4tool](https://github.com/tihmstar/img4tool);
|
|
||||||
* [liboffsetfinder64(fork))](https://github.com/Cryptiiiic/liboffsetfinder64);
|
|
||||||
* [libipatcher(fork)](https://github.com/Cryptiiiic/libipatcher)
|
|
||||||
|
|
||||||
* ## Submodules
|
|
||||||
Make sure these projects compile on your system (install it's dependencies):
|
|
||||||
|
|
||||||
* [jssy](https://github.com/tihmstar/jssy);
|
|
||||||
* [tsschecker(fork)](https://github.com/1Conan/tsschecker);
|
|
||||||
* [idevicerestore(fork)](https://github.com/futurerestore/idevicerestore)
|
|
||||||
|
|
||||||
If you are cloning this repository you may run:
|
|
||||||
|
|
||||||
```git clone https://github.com/futurerestore/futurerestore --recursive```
|
|
||||||
|
|
||||||
which will clone these submodules for you.
|
|
||||||
|
|
||||||
|
|
||||||
|
# Futurerestore Usage
|
||||||
Usage: `futurerestore [OPTIONS] iPSW`
|
Usage: `futurerestore [OPTIONS] iPSW`
|
||||||
|
|
||||||
| option (short) | option (long) | description |
|
| option (short) | option (long) | description |
|
||||||
|
|
27
autogen.sh
27
autogen.sh
|
@ -1,27 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
gprefix=`which glibtoolize 2>&1 >/dev/null`
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
glibtoolize --force
|
|
||||||
else
|
|
||||||
libtoolize --force
|
|
||||||
fi
|
|
||||||
aclocal -I m4
|
|
||||||
autoconf
|
|
||||||
autoheader
|
|
||||||
automake --add-missing
|
|
||||||
autoreconf -i
|
|
||||||
|
|
||||||
export NOCONFIGURE=1
|
|
||||||
|
|
||||||
SUBDIRS="external/idevicerestore external/tsschecker"
|
|
||||||
for SUB in $SUBDIRS; do
|
|
||||||
pushd $SUB
|
|
||||||
./autogen.sh
|
|
||||||
popd
|
|
||||||
done
|
|
||||||
|
|
||||||
unset NOCONFIGURE
|
|
||||||
|
|
||||||
if [ -z "$NOCONFIGURE" ]; then
|
|
||||||
./configure "$@"
|
|
||||||
fi
|
|
13
build.sh
Executable file
13
build.sh
Executable file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
if [[ -z "$NO_CLEAN" ]]; then rm -rf cmake-build-release cmake-build-debug; fi
|
||||||
|
if [[ "$RELEASE" == "1" ]]
|
||||||
|
then
|
||||||
|
if [[ ! "$NO_CLEAN" == "1" ]]; then cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-release $@; fi
|
||||||
|
make -C cmake-build-release clean
|
||||||
|
make -C cmake-build-release
|
||||||
|
llvm-strip -s cmake-build-release/src/futurerestore
|
||||||
|
else
|
||||||
|
if [[ ! "$NO_CLEAN" == "1" ]]; then cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$(which make) -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) -G "CodeBlocks - Unix Makefiles" -S ./ -B cmake-build-debug $@ ; fi
|
||||||
|
make -C cmake-build-debug clean
|
||||||
|
make -C cmake-build-debug
|
||||||
|
fi
|
103
configure.ac
103
configure.ac
|
@ -1,103 +0,0 @@
|
||||||
AC_PREREQ([2.69])
|
|
||||||
AC_INIT([futurerestore], m4_esyscmd([git rev-list --count HEAD | tr -d '\n']), [tihmstar@gmail.com])
|
|
||||||
|
|
||||||
AC_CANONICAL_SYSTEM
|
|
||||||
AC_CANONICAL_HOST
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([subdir-objects])
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
|
||||||
AC_CONFIG_MACRO_DIRS([m4])
|
|
||||||
|
|
||||||
# Versioning.
|
|
||||||
AC_DEFINE([VERSION_COMMIT_COUNT], "m4_esyscmd([git rev-list --count HEAD | tr -d '\n'])", [Git commit count])
|
|
||||||
AC_DEFINE([VERSION_COMMIT_SHA], "m4_esyscmd([git rev-parse HEAD | tr -d '\n'])", [Git commit sha])
|
|
||||||
AC_DEFINE([VERSION_RELEASE], "m4_esyscmd([cat version.txt | tr -d '\n'])", [Futurerestore release version])
|
|
||||||
AC_SUBST([VERSION_COMMIT_COUNT], ["m4_esyscmd([git rev-list --count HEAD | tr -d '\n'])"])
|
|
||||||
AC_SUBST([VERSION_COMMIT_SHA], ["m4_esyscmd([git rev-parse HEAD | tr -d '\n'])"])
|
|
||||||
AC_SUBST([VERSION_RELEASE], ["m4_esyscmd([cat version.txt | tr -d '\n'])"])
|
|
||||||
|
|
||||||
# Checks for programs.
|
|
||||||
AC_PROG_CXX
|
|
||||||
AC_PROG_CC
|
|
||||||
|
|
||||||
# Check for operating system.
|
|
||||||
AC_MSG_CHECKING([whether we need platform-specific build settings])
|
|
||||||
case $host_os in
|
|
||||||
darwin* )
|
|
||||||
CXXFLAGS+=" -stdlib=libc++"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Checks the flags.
|
|
||||||
CFLAGS+=" -DIDEVICERESTORE_NOMAIN=1 -DTSSCHECKER_NOMAIN=1"
|
|
||||||
CXXFLAGS+=" -std=gnu++11"
|
|
||||||
CFLAGS+=" -std=gnu11"
|
|
||||||
|
|
||||||
AC_DEFUN([AX_UNPRECIOUS], [
|
|
||||||
m4_define([_AC_PRECIOUS_VARS], m4_bpatsubst(_AC_PRECIOUS_VARS, [$1], []))
|
|
||||||
])
|
|
||||||
AX_UNPRECIOUS([CFLAGS])
|
|
||||||
export CFLAGS
|
|
||||||
|
|
||||||
AC_CONFIG_SUBDIRS(external/idevicerestore external/tsschecker)
|
|
||||||
AC_CONFIG_SRCDIR([futurerestore])
|
|
||||||
|
|
||||||
# Checks the libraries.
|
|
||||||
LIBIPATCHER_REQUIRES_STR="libipatcher >= 61"
|
|
||||||
LIBPLIST_REQUIRES_STR="libplist-2.0 >= 2.2.0"
|
|
||||||
LIBZIP_REQUIRES_STR="libzip >= 0.10"
|
|
||||||
LIBIMOBILEDEVICE_REQUIRES_STR="libimobiledevice-1.0 >= 1.2.1"
|
|
||||||
LIBFRAGMENTZIP_REQUIRES_STR="libfragmentzip >= 47"
|
|
||||||
LIBIRECOVERY_REQUIRES_STR="libirecovery-1.0 >= 1.0.0"
|
|
||||||
IMG4TOOL_REQUIRES_STR="libimg4tool >= 162"
|
|
||||||
LIBGENERAL_REQUIRES_STR="libgeneral >= 26"
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(libplist, $LIBPLIST_REQUIRES_STR)
|
|
||||||
PKG_CHECK_MODULES(libzip, $LIBZIP_REQUIRES_STR)
|
|
||||||
PKG_CHECK_MODULES(libimobiledevice, $LIBIMOBILEDEVICE_REQUIRES_STR)
|
|
||||||
PKG_CHECK_MODULES(libfragmentzip, $LIBFRAGMENTZIP_REQUIRES_STR)
|
|
||||||
PKG_CHECK_MODULES(libirecovery, $LIBIRECOVERY_REQUIRES_STR)
|
|
||||||
PKG_CHECK_MODULES(libimg4tool, $IMG4TOOL_REQUIRES_STR)
|
|
||||||
PKG_CHECK_MODULES(libgeneral, $LIBGENERAL_REQUIRES_STR)
|
|
||||||
|
|
||||||
# Optional module libipatcher
|
|
||||||
AC_ARG_WITH([libipatcher],
|
|
||||||
[AS_HELP_STRING([--without-libipatcher],
|
|
||||||
[build with bundle-less odysseus support (default is yes)])],
|
|
||||||
[build_libipatcher=false],
|
|
||||||
[build_libipatcher=true])
|
|
||||||
|
|
||||||
PKG_PROG_PKG_CONFIG
|
|
||||||
LIBIPATCHER_FLAGS=$($PKG_CONFIG --cflags libipatcher)
|
|
||||||
if [test -z "$LIBIPATCHER_FLAGS"]; then
|
|
||||||
do_libipatcher=no
|
|
||||||
else
|
|
||||||
AC_MSG_CHECKING([for futurerestore libipatcher])
|
|
||||||
if test "$build_libipatcher" = "true"; then
|
|
||||||
PKG_CHECK_MODULES(libipatcher, $LIBIPATCHER_REQUIRES_STR)
|
|
||||||
AC_DEFINE(HAVE_LIBIPATCHER, 1, [Define if you have libipatcher])
|
|
||||||
do_libipatcher=yes
|
|
||||||
else
|
|
||||||
do_libipatcher=no
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AM_CONDITIONAL([HAVE_LIBIPATCHER],[test "x$do_libipatcher" = "xyes"])
|
|
||||||
|
|
||||||
AC_DEFINE(CUSTOM_LOGGING, <stdlib.h>, [required for futurerestore])
|
|
||||||
|
|
||||||
LT_INIT
|
|
||||||
|
|
||||||
AC_OUTPUT([
|
|
||||||
Makefile
|
|
||||||
futurerestore/Makefile
|
|
||||||
])
|
|
||||||
|
|
||||||
echo "
|
|
||||||
Configuration for $PACKAGE $VERSION:
|
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
Install prefix ..........: $prefix
|
|
||||||
With libipatcher ........: $do_libipatcher
|
|
||||||
Now type 'make' to build $PACKAGE $VERSION,
|
|
||||||
and then 'make install' for installation.
|
|
||||||
"
|
|
0
dep_root/.keep
Normal file
0
dep_root/.keep
Normal file
2
external/idevicerestore
vendored
2
external/idevicerestore
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 44c13e418806e8cb5b666486bb0de6052e5cfb3d
|
Subproject commit 78e077ccd41b5ee8d6c35702805a01a954d62cfc
|
2
external/tsschecker
vendored
2
external/tsschecker
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 38dc80af7f55cacc75b623bb8efe2fcbf26eaf96
|
Subproject commit ba70a6ad0c818b67028276c430ef221591692d2a
|
|
@ -1,557 +0,0 @@
|
||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 47;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
5669111D23B3D86E00C93279 /* libbz2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669111C23B3D86E00C93279 /* libbz2.a */; };
|
|
||||||
5669111F23B3D88200C93279 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669111E23B3D88200C93279 /* libcrypto.a */; };
|
|
||||||
5669112123B3D89B00C93279 /* libcurl.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112023B3D89B00C93279 /* libcurl.tbd */; };
|
|
||||||
5669112323B3D89E00C93279 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112223B3D89E00C93279 /* libz.tbd */; };
|
|
||||||
5669112523B3D8B200C93279 /* libfragmentzip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112423B3D8B200C93279 /* libfragmentzip.a */; };
|
|
||||||
5669112723B3D8BE00C93279 /* libgeneral.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112623B3D8BE00C93279 /* libgeneral.a */; };
|
|
||||||
5669112923B3D8CF00C93279 /* libimg4tool.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112823B3D8CE00C93279 /* libimg4tool.a */; };
|
|
||||||
5669112B23B3D8DA00C93279 /* libimobiledevice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112A23B3D8DA00C93279 /* libimobiledevice.a */; };
|
|
||||||
5669112D23B3D8E200C93279 /* libipatcher.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112C23B3D8E200C93279 /* libipatcher.a */; };
|
|
||||||
5669112F23B3D8ED00C93279 /* libirecovery.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669112E23B3D8ED00C93279 /* libirecovery.a */; };
|
|
||||||
5669113123B3D91B00C93279 /* libpartialzip-1.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669113023B3D91B00C93279 /* libpartialzip-1.0.a */; };
|
|
||||||
5669113323B3D92B00C93279 /* libplist.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669113223B3D92B00C93279 /* libplist.a */; };
|
|
||||||
5669113523B3D94300C93279 /* libzip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5669113423B3D94300C93279 /* libzip.a */; };
|
|
||||||
878587471D89CFDC008689F0 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 878587461D89CFDC008689F0 /* main.cpp */; };
|
|
||||||
8799B0B21D89D99D002F4D5F /* futurerestore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8799B0B01D89D99D002F4D5F /* futurerestore.cpp */; };
|
|
||||||
8799B0B31D89DAE7002F4D5F /* idevicerestore.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785875C1D89D1C1008689F0 /* idevicerestore.c */; };
|
|
||||||
8799B0B41D89DAF6002F4D5F /* tss.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587761D89D1C1008689F0 /* tss.c */; };
|
|
||||||
8799B0B51D89DAFF002F4D5F /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587511D89D1C1008689F0 /* common.c */; };
|
|
||||||
8799B0B61D89DAFF002F4D5F /* dfu.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587531D89D1C1008689F0 /* dfu.c */; };
|
|
||||||
8799B0B71D89DAFF002F4D5F /* normal.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785876C1D89D1C1008689F0 /* normal.c */; };
|
|
||||||
8799B0B81D89DAFF002F4D5F /* recovery.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785876E1D89D1C1008689F0 /* recovery.c */; };
|
|
||||||
8799B0B91D89DB0D002F4D5F /* img3.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785875E1D89D1C1008689F0 /* img3.c */; };
|
|
||||||
8799B0BB1D89DB12002F4D5F /* download.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587551D89D1C1008689F0 /* download.c */; settings = {COMPILER_FLAGS = "-DPACKAGE_VERSION=\"\""; }; };
|
|
||||||
8799B0BC1D89DB27002F4D5F /* ipsw.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587621D89D1C1008689F0 /* ipsw.c */; };
|
|
||||||
8799B0BD1D89DB27002F4D5F /* limera1n.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587641D89D1C1008689F0 /* limera1n.c */; };
|
|
||||||
8799B0BE1D89DB27002F4D5F /* restore.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587701D89D1C1008689F0 /* restore.c */; };
|
|
||||||
8799B0BF1D89DB38002F4D5F /* asr.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785874F1D89D1C1008689F0 /* asr.c */; };
|
|
||||||
8799B0C01D89DB38002F4D5F /* fdr.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587581D89D1C1008689F0 /* fdr.c */; };
|
|
||||||
8799B0C11D89DB38002F4D5F /* fls.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785875A1D89D1C1008689F0 /* fls.c */; };
|
|
||||||
8799B0C21D89DB46002F4D5F /* thread.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587741D89D1C1008689F0 /* thread.c */; };
|
|
||||||
8799B0C31D89DB4B002F4D5F /* socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587721D89D1C1008689F0 /* socket.c */; };
|
|
||||||
8799B0C41D89DB55002F4D5F /* mbn.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785876A1D89D1C1008689F0 /* mbn.c */; };
|
|
||||||
8799B0C51D89DB67002F4D5F /* locking.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587671D89D1C1008689F0 /* locking.c */; };
|
|
||||||
8799B0CA1D89E371002F4D5F /* img4.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587601D89D1C1008689F0 /* img4.c */; };
|
|
||||||
8799B0CB1D89F796002F4D5F /* tsschecker.c in Sources */ = {isa = PBXBuildFile; fileRef = 8785879F1D89D2BA008689F0 /* tsschecker.c */; };
|
|
||||||
8799B0CC1D89F7B9002F4D5F /* download.c in Sources */ = {isa = PBXBuildFile; fileRef = 878587981D89D2BA008689F0 /* download.c */; };
|
|
||||||
87B517C3236EF36B009EAB8F /* ftab.c in Sources */ = {isa = PBXBuildFile; fileRef = 87B517C1236EF36B009EAB8F /* ftab.c */; };
|
|
||||||
87B517C6236EF3B0009EAB8F /* json_plist.c in Sources */ = {isa = PBXBuildFile; fileRef = 87B517C5236EF3B0009EAB8F /* json_plist.c */; };
|
|
||||||
87B517C9236EF3CD009EAB8F /* jsmn.c in Sources */ = {isa = PBXBuildFile; fileRef = 87B517C7236EF3CD009EAB8F /* jsmn.c */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
|
||||||
8762F346236DF4D900F42FDB /* Embed Libraries */ = {
|
|
||||||
isa = PBXCopyFilesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
dstPath = "";
|
|
||||||
dstSubfolderSpec = 10;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
name = "Embed Libraries";
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
878587411D89CFDC008689F0 /* CopyFiles */ = {
|
|
||||||
isa = PBXCopyFilesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
dstPath = /usr/share/man/man1/;
|
|
||||||
dstSubfolderSpec = 0;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 1;
|
|
||||||
};
|
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
5669111C23B3D86E00C93279 /* libbz2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbz2.a; path = ../../../../../usr/local/lib/libbz2.a; sourceTree = "<group>"; };
|
|
||||||
5669111E23B3D88200C93279 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = ../../../../../usr/local/lib/libcrypto.a; sourceTree = "<group>"; };
|
|
||||||
5669112023B3D89B00C93279 /* libcurl.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcurl.tbd; path = usr/lib/libcurl.tbd; sourceTree = SDKROOT; };
|
|
||||||
5669112223B3D89E00C93279 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
|
||||||
5669112423B3D8B200C93279 /* libfragmentzip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfragmentzip.a; path = ../../../../../usr/local/lib/libfragmentzip.a; sourceTree = "<group>"; };
|
|
||||||
5669112623B3D8BE00C93279 /* libgeneral.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgeneral.a; path = ../../../../../usr/local/lib/libgeneral.a; sourceTree = "<group>"; };
|
|
||||||
5669112823B3D8CE00C93279 /* libimg4tool.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libimg4tool.a; path = ../../../../../usr/local/lib/libimg4tool.a; sourceTree = "<group>"; };
|
|
||||||
5669112A23B3D8DA00C93279 /* libimobiledevice.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libimobiledevice.a; path = ../../../../../usr/local/lib/libimobiledevice.a; sourceTree = "<group>"; };
|
|
||||||
5669112C23B3D8E200C93279 /* libipatcher.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libipatcher.a; path = ../../../../../usr/local/lib/libipatcher.a; sourceTree = "<group>"; };
|
|
||||||
5669112E23B3D8ED00C93279 /* libirecovery.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libirecovery.a; path = ../../../../../usr/local/lib/libirecovery.a; sourceTree = "<group>"; };
|
|
||||||
5669113023B3D91B00C93279 /* libpartialzip-1.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpartialzip-1.0.a"; path = "../../../../../usr/local/lib/libpartialzip-1.0.a"; sourceTree = "<group>"; };
|
|
||||||
5669113223B3D92B00C93279 /* libplist.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libplist.a; path = ../../../../../usr/local/lib/libplist.a; sourceTree = "<group>"; };
|
|
||||||
5669113423B3D94300C93279 /* libzip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzip.a; path = ../../../../../usr/local/lib/libzip.a; sourceTree = "<group>"; };
|
|
||||||
878587431D89CFDC008689F0 /* futurerestore */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = futurerestore; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
878587461D89CFDC008689F0 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
|
|
||||||
8785874F1D89D1C1008689F0 /* asr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = asr.c; sourceTree = "<group>"; };
|
|
||||||
878587501D89D1C1008689F0 /* asr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asr.h; sourceTree = "<group>"; };
|
|
||||||
878587511D89D1C1008689F0 /* common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = common.c; sourceTree = "<group>"; };
|
|
||||||
878587521D89D1C1008689F0 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = "<group>"; };
|
|
||||||
878587531D89D1C1008689F0 /* dfu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dfu.c; sourceTree = "<group>"; };
|
|
||||||
878587541D89D1C1008689F0 /* dfu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dfu.h; sourceTree = "<group>"; };
|
|
||||||
878587551D89D1C1008689F0 /* download.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = download.c; sourceTree = "<group>"; };
|
|
||||||
878587561D89D1C1008689F0 /* download.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = download.h; sourceTree = "<group>"; };
|
|
||||||
878587571D89D1C1008689F0 /* endianness.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endianness.h; sourceTree = "<group>"; };
|
|
||||||
878587581D89D1C1008689F0 /* fdr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fdr.c; sourceTree = "<group>"; };
|
|
||||||
878587591D89D1C1008689F0 /* fdr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fdr.h; sourceTree = "<group>"; };
|
|
||||||
8785875A1D89D1C1008689F0 /* fls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fls.c; sourceTree = "<group>"; };
|
|
||||||
8785875B1D89D1C1008689F0 /* fls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fls.h; sourceTree = "<group>"; };
|
|
||||||
8785875C1D89D1C1008689F0 /* idevicerestore.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = idevicerestore.c; sourceTree = "<group>"; };
|
|
||||||
8785875D1D89D1C1008689F0 /* idevicerestore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = idevicerestore.h; sourceTree = "<group>"; };
|
|
||||||
8785875E1D89D1C1008689F0 /* img3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = img3.c; sourceTree = "<group>"; };
|
|
||||||
8785875F1D89D1C1008689F0 /* img3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = img3.h; sourceTree = "<group>"; };
|
|
||||||
878587601D89D1C1008689F0 /* img4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = img4.c; sourceTree = "<group>"; };
|
|
||||||
878587611D89D1C1008689F0 /* img4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = img4.h; sourceTree = "<group>"; };
|
|
||||||
878587621D89D1C1008689F0 /* ipsw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ipsw.c; sourceTree = "<group>"; };
|
|
||||||
878587631D89D1C1008689F0 /* ipsw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ipsw.h; sourceTree = "<group>"; };
|
|
||||||
878587641D89D1C1008689F0 /* limera1n.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = limera1n.c; sourceTree = "<group>"; };
|
|
||||||
878587651D89D1C1008689F0 /* limera1n.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = limera1n.h; sourceTree = "<group>"; };
|
|
||||||
878587661D89D1C1008689F0 /* limera1n_payload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = limera1n_payload.h; sourceTree = "<group>"; };
|
|
||||||
878587671D89D1C1008689F0 /* locking.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = locking.c; sourceTree = "<group>"; };
|
|
||||||
878587681D89D1C1008689F0 /* locking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = locking.h; sourceTree = "<group>"; };
|
|
||||||
8785876A1D89D1C1008689F0 /* mbn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mbn.c; sourceTree = "<group>"; };
|
|
||||||
8785876B1D89D1C1008689F0 /* mbn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mbn.h; sourceTree = "<group>"; };
|
|
||||||
8785876C1D89D1C1008689F0 /* normal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = normal.c; sourceTree = "<group>"; };
|
|
||||||
8785876D1D89D1C1008689F0 /* normal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = normal.h; sourceTree = "<group>"; };
|
|
||||||
8785876E1D89D1C1008689F0 /* recovery.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = recovery.c; sourceTree = "<group>"; };
|
|
||||||
8785876F1D89D1C1008689F0 /* recovery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = recovery.h; sourceTree = "<group>"; };
|
|
||||||
878587701D89D1C1008689F0 /* restore.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = restore.c; sourceTree = "<group>"; };
|
|
||||||
878587711D89D1C1008689F0 /* restore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = restore.h; sourceTree = "<group>"; };
|
|
||||||
878587721D89D1C1008689F0 /* socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = socket.c; sourceTree = "<group>"; };
|
|
||||||
878587731D89D1C1008689F0 /* socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = socket.h; sourceTree = "<group>"; };
|
|
||||||
878587741D89D1C1008689F0 /* thread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = thread.c; sourceTree = "<group>"; };
|
|
||||||
878587751D89D1C1008689F0 /* thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = thread.h; sourceTree = "<group>"; };
|
|
||||||
878587761D89D1C1008689F0 /* tss.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tss.c; sourceTree = "<group>"; };
|
|
||||||
878587771D89D1C1008689F0 /* tss.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tss.h; sourceTree = "<group>"; };
|
|
||||||
878587981D89D2BA008689F0 /* download.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = download.c; sourceTree = "<group>"; };
|
|
||||||
878587991D89D2BA008689F0 /* download.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = download.h; sourceTree = "<group>"; };
|
|
||||||
8785879A1D89D2BA008689F0 /* jssy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jssy.c; path = ../external/jssy/jssy/jssy.c; sourceTree = "<group>"; };
|
|
||||||
8785879B1D89D2BA008689F0 /* jssy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jssy.h; path = ../external/jssy/jssy/jssy.h; sourceTree = "<group>"; };
|
|
||||||
8785879F1D89D2BA008689F0 /* tsschecker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tsschecker.c; sourceTree = "<group>"; };
|
|
||||||
878587A01D89D2BA008689F0 /* tsschecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tsschecker.h; sourceTree = "<group>"; };
|
|
||||||
8799B0B01D89D99D002F4D5F /* futurerestore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = futurerestore.cpp; sourceTree = "<group>"; };
|
|
||||||
8799B0B11D89D99D002F4D5F /* futurerestore.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = futurerestore.hpp; sourceTree = "<group>"; };
|
|
||||||
87B517C1236EF36B009EAB8F /* ftab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ftab.c; sourceTree = "<group>"; };
|
|
||||||
87B517C2236EF36B009EAB8F /* ftab.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ftab.h; sourceTree = "<group>"; };
|
|
||||||
87B517C4236EF3B0009EAB8F /* json_plist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_plist.h; sourceTree = "<group>"; };
|
|
||||||
87B517C5236EF3B0009EAB8F /* json_plist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = json_plist.c; sourceTree = "<group>"; };
|
|
||||||
87B517C7236EF3CD009EAB8F /* jsmn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = jsmn.c; sourceTree = "<group>"; };
|
|
||||||
87B517C8236EF3CD009EAB8F /* jsmn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jsmn.h; sourceTree = "<group>"; };
|
|
||||||
87F574C71E151DA6008D5C4D /* libcommonCrypto.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcommonCrypto.tbd; path = usr/lib/system/libcommonCrypto.tbd; sourceTree = SDKROOT; };
|
|
||||||
87F574CC1E151EF8008D5C4D /* libcorecrypto.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcorecrypto.tbd; path = usr/lib/system/libcorecrypto.tbd; sourceTree = SDKROOT; };
|
|
||||||
87F574CE1E151F11008D5C4D /* libSystem.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libSystem.tbd; path = usr/lib/libSystem.tbd; sourceTree = SDKROOT; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
878587401D89CFDC008689F0 /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
5669113323B3D92B00C93279 /* libplist.a in Frameworks */,
|
|
||||||
5669111D23B3D86E00C93279 /* libbz2.a in Frameworks */,
|
|
||||||
5669112523B3D8B200C93279 /* libfragmentzip.a in Frameworks */,
|
|
||||||
5669112923B3D8CF00C93279 /* libimg4tool.a in Frameworks */,
|
|
||||||
5669112D23B3D8E200C93279 /* libipatcher.a in Frameworks */,
|
|
||||||
5669112B23B3D8DA00C93279 /* libimobiledevice.a in Frameworks */,
|
|
||||||
5669112F23B3D8ED00C93279 /* libirecovery.a in Frameworks */,
|
|
||||||
5669113123B3D91B00C93279 /* libpartialzip-1.0.a in Frameworks */,
|
|
||||||
5669112723B3D8BE00C93279 /* libgeneral.a in Frameworks */,
|
|
||||||
5669112123B3D89B00C93279 /* libcurl.tbd in Frameworks */,
|
|
||||||
5669112323B3D89E00C93279 /* libz.tbd in Frameworks */,
|
|
||||||
5669111F23B3D88200C93279 /* libcrypto.a in Frameworks */,
|
|
||||||
5669113523B3D94300C93279 /* libzip.a in Frameworks */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
8785873A1D89CFDC008689F0 = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
878587451D89CFDC008689F0 /* futurerestore */,
|
|
||||||
878587441D89CFDC008689F0 /* Products */,
|
|
||||||
87F574C21E151CDE008D5C4D /* Frameworks */,
|
|
||||||
);
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
878587441D89CFDC008689F0 /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
878587431D89CFDC008689F0 /* futurerestore */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
878587451D89CFDC008689F0 /* futurerestore */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
8785874D1D89D1A4008689F0 /* external */,
|
|
||||||
8799B0B11D89D99D002F4D5F /* futurerestore.hpp */,
|
|
||||||
8799B0B01D89D99D002F4D5F /* futurerestore.cpp */,
|
|
||||||
878587461D89CFDC008689F0 /* main.cpp */,
|
|
||||||
);
|
|
||||||
path = futurerestore;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
8785874D1D89D1A4008689F0 /* external */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
878587961D89D2BA008689F0 /* tsschecker */,
|
|
||||||
8785874E1D89D1C1008689F0 /* idevicerestore */,
|
|
||||||
);
|
|
||||||
name = external;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
8785874E1D89D1C1008689F0 /* idevicerestore */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
8785874F1D89D1C1008689F0 /* asr.c */,
|
|
||||||
878587501D89D1C1008689F0 /* asr.h */,
|
|
||||||
878587511D89D1C1008689F0 /* common.c */,
|
|
||||||
878587521D89D1C1008689F0 /* common.h */,
|
|
||||||
878587531D89D1C1008689F0 /* dfu.c */,
|
|
||||||
878587541D89D1C1008689F0 /* dfu.h */,
|
|
||||||
878587551D89D1C1008689F0 /* download.c */,
|
|
||||||
878587561D89D1C1008689F0 /* download.h */,
|
|
||||||
878587571D89D1C1008689F0 /* endianness.h */,
|
|
||||||
878587581D89D1C1008689F0 /* fdr.c */,
|
|
||||||
878587591D89D1C1008689F0 /* fdr.h */,
|
|
||||||
8785875A1D89D1C1008689F0 /* fls.c */,
|
|
||||||
8785875B1D89D1C1008689F0 /* fls.h */,
|
|
||||||
8785875C1D89D1C1008689F0 /* idevicerestore.c */,
|
|
||||||
8785875D1D89D1C1008689F0 /* idevicerestore.h */,
|
|
||||||
8785875E1D89D1C1008689F0 /* img3.c */,
|
|
||||||
8785875F1D89D1C1008689F0 /* img3.h */,
|
|
||||||
878587601D89D1C1008689F0 /* img4.c */,
|
|
||||||
878587611D89D1C1008689F0 /* img4.h */,
|
|
||||||
87B517C5236EF3B0009EAB8F /* json_plist.c */,
|
|
||||||
87B517C4236EF3B0009EAB8F /* json_plist.h */,
|
|
||||||
87B517C1236EF36B009EAB8F /* ftab.c */,
|
|
||||||
87B517C2236EF36B009EAB8F /* ftab.h */,
|
|
||||||
87B517C7236EF3CD009EAB8F /* jsmn.c */,
|
|
||||||
87B517C8236EF3CD009EAB8F /* jsmn.h */,
|
|
||||||
878587621D89D1C1008689F0 /* ipsw.c */,
|
|
||||||
878587631D89D1C1008689F0 /* ipsw.h */,
|
|
||||||
878587641D89D1C1008689F0 /* limera1n.c */,
|
|
||||||
878587651D89D1C1008689F0 /* limera1n.h */,
|
|
||||||
878587661D89D1C1008689F0 /* limera1n_payload.h */,
|
|
||||||
878587671D89D1C1008689F0 /* locking.c */,
|
|
||||||
878587681D89D1C1008689F0 /* locking.h */,
|
|
||||||
8785876A1D89D1C1008689F0 /* mbn.c */,
|
|
||||||
8785876B1D89D1C1008689F0 /* mbn.h */,
|
|
||||||
8785876C1D89D1C1008689F0 /* normal.c */,
|
|
||||||
8785876D1D89D1C1008689F0 /* normal.h */,
|
|
||||||
8785876E1D89D1C1008689F0 /* recovery.c */,
|
|
||||||
8785876F1D89D1C1008689F0 /* recovery.h */,
|
|
||||||
878587701D89D1C1008689F0 /* restore.c */,
|
|
||||||
878587711D89D1C1008689F0 /* restore.h */,
|
|
||||||
878587721D89D1C1008689F0 /* socket.c */,
|
|
||||||
878587731D89D1C1008689F0 /* socket.h */,
|
|
||||||
878587741D89D1C1008689F0 /* thread.c */,
|
|
||||||
878587751D89D1C1008689F0 /* thread.h */,
|
|
||||||
878587761D89D1C1008689F0 /* tss.c */,
|
|
||||||
878587771D89D1C1008689F0 /* tss.h */,
|
|
||||||
);
|
|
||||||
name = idevicerestore;
|
|
||||||
path = external/idevicerestore/src;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
878587961D89D2BA008689F0 /* tsschecker */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
878587991D89D2BA008689F0 /* download.h */,
|
|
||||||
878587981D89D2BA008689F0 /* download.c */,
|
|
||||||
8785879B1D89D2BA008689F0 /* jssy.h */,
|
|
||||||
8785879A1D89D2BA008689F0 /* jssy.c */,
|
|
||||||
878587A01D89D2BA008689F0 /* tsschecker.h */,
|
|
||||||
8785879F1D89D2BA008689F0 /* tsschecker.c */,
|
|
||||||
);
|
|
||||||
name = tsschecker;
|
|
||||||
path = external/tsschecker/tsschecker;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
87F574C21E151CDE008D5C4D /* Frameworks */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
5669111C23B3D86E00C93279 /* libbz2.a */,
|
|
||||||
87F574C71E151DA6008D5C4D /* libcommonCrypto.tbd */,
|
|
||||||
87F574CC1E151EF8008D5C4D /* libcorecrypto.tbd */,
|
|
||||||
5669111E23B3D88200C93279 /* libcrypto.a */,
|
|
||||||
5669112023B3D89B00C93279 /* libcurl.tbd */,
|
|
||||||
5669112223B3D89E00C93279 /* libz.tbd */,
|
|
||||||
5669112623B3D8BE00C93279 /* libgeneral.a */,
|
|
||||||
5669112423B3D8B200C93279 /* libfragmentzip.a */,
|
|
||||||
5669112823B3D8CE00C93279 /* libimg4tool.a */,
|
|
||||||
5669112A23B3D8DA00C93279 /* libimobiledevice.a */,
|
|
||||||
5669112C23B3D8E200C93279 /* libipatcher.a */,
|
|
||||||
5669112E23B3D8ED00C93279 /* libirecovery.a */,
|
|
||||||
5669113023B3D91B00C93279 /* libpartialzip-1.0.a */,
|
|
||||||
5669113223B3D92B00C93279 /* libplist.a */,
|
|
||||||
87F574CE1E151F11008D5C4D /* libSystem.tbd */,
|
|
||||||
5669113423B3D94300C93279 /* libzip.a */,
|
|
||||||
);
|
|
||||||
name = Frameworks;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
878587421D89CFDC008689F0 /* futurerestore */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 8785874A1D89CFDC008689F0 /* Build configuration list for PBXNativeTarget "futurerestore" */;
|
|
||||||
buildPhases = (
|
|
||||||
8785873F1D89CFDC008689F0 /* Sources */,
|
|
||||||
878587401D89CFDC008689F0 /* Frameworks */,
|
|
||||||
878587411D89CFDC008689F0 /* CopyFiles */,
|
|
||||||
8762F346236DF4D900F42FDB /* Embed Libraries */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = futurerestore;
|
|
||||||
productName = futurerestore;
|
|
||||||
productReference = 878587431D89CFDC008689F0 /* futurerestore */;
|
|
||||||
productType = "com.apple.product-type.tool";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
8785873B1D89CFDC008689F0 /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
attributes = {
|
|
||||||
LastUpgradeCheck = 1130;
|
|
||||||
ORGANIZATIONNAME = tihmstar;
|
|
||||||
TargetAttributes = {
|
|
||||||
878587421D89CFDC008689F0 = {
|
|
||||||
CreatedOnToolsVersion = 7.3.1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
buildConfigurationList = 8785873E1D89CFDC008689F0 /* Build configuration list for PBXProject "futurerestore" */;
|
|
||||||
compatibilityVersion = "Xcode 6.3";
|
|
||||||
developmentRegion = en;
|
|
||||||
hasScannedForEncodings = 0;
|
|
||||||
knownRegions = (
|
|
||||||
en,
|
|
||||||
);
|
|
||||||
mainGroup = 8785873A1D89CFDC008689F0;
|
|
||||||
productRefGroup = 878587441D89CFDC008689F0 /* Products */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
878587421D89CFDC008689F0 /* futurerestore */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
8785873F1D89CFDC008689F0 /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
8799B0C11D89DB38002F4D5F /* fls.c in Sources */,
|
|
||||||
8799B0B41D89DAF6002F4D5F /* tss.c in Sources */,
|
|
||||||
8799B0C01D89DB38002F4D5F /* fdr.c in Sources */,
|
|
||||||
8799B0BC1D89DB27002F4D5F /* ipsw.c in Sources */,
|
|
||||||
87B517C3236EF36B009EAB8F /* ftab.c in Sources */,
|
|
||||||
8799B0CC1D89F7B9002F4D5F /* download.c in Sources */,
|
|
||||||
8799B0B91D89DB0D002F4D5F /* img3.c in Sources */,
|
|
||||||
8799B0B51D89DAFF002F4D5F /* common.c in Sources */,
|
|
||||||
8799B0C41D89DB55002F4D5F /* mbn.c in Sources */,
|
|
||||||
8799B0B81D89DAFF002F4D5F /* recovery.c in Sources */,
|
|
||||||
8799B0B31D89DAE7002F4D5F /* idevicerestore.c in Sources */,
|
|
||||||
8799B0BB1D89DB12002F4D5F /* download.c in Sources */,
|
|
||||||
8799B0B71D89DAFF002F4D5F /* normal.c in Sources */,
|
|
||||||
87B517C9236EF3CD009EAB8F /* jsmn.c in Sources */,
|
|
||||||
8799B0C31D89DB4B002F4D5F /* socket.c in Sources */,
|
|
||||||
8799B0C21D89DB46002F4D5F /* thread.c in Sources */,
|
|
||||||
8799B0B61D89DAFF002F4D5F /* dfu.c in Sources */,
|
|
||||||
8799B0BD1D89DB27002F4D5F /* limera1n.c in Sources */,
|
|
||||||
8799B0C51D89DB67002F4D5F /* locking.c in Sources */,
|
|
||||||
878587471D89CFDC008689F0 /* main.cpp in Sources */,
|
|
||||||
87B517C6236EF3B0009EAB8F /* json_plist.c in Sources */,
|
|
||||||
8799B0BF1D89DB38002F4D5F /* asr.c in Sources */,
|
|
||||||
8799B0BE1D89DB27002F4D5F /* restore.c in Sources */,
|
|
||||||
8799B0CB1D89F796002F4D5F /* tsschecker.c in Sources */,
|
|
||||||
8799B0CA1D89E371002F4D5F /* img4.c in Sources */,
|
|
||||||
8799B0B21D89D99D002F4D5F /* futurerestore.cpp in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
878587481D89CFDC008689F0 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
CODE_SIGN_IDENTITY = "-";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
ENABLE_TESTABILITY = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
||||||
"DEBUG=1",
|
|
||||||
"$(inherited)",
|
|
||||||
);
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
INSTALL_PATH = /usr/local/bin;
|
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
|
||||||
SDKROOT = macosx;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
878587491D89CFDC008689F0 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
CODE_SIGN_IDENTITY = "-";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
INSTALL_PATH = /usr/local/bin;
|
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
|
||||||
SDKROOT = macosx;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
8785874B1D89CFDC008689F0 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
||||||
"DEBUG=1",
|
|
||||||
"$(inherited)",
|
|
||||||
"IDEVICERESTORE_NOMAIN=1",
|
|
||||||
"CUSTOM_LOGGING=1",
|
|
||||||
"HAVE_REALPATH=1",
|
|
||||||
);
|
|
||||||
HEADER_SEARCH_PATHS = "";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
/usr/local/lib,
|
|
||||||
/usr/lib,
|
|
||||||
/usr/local/opt/openssl/lib,
|
|
||||||
"$(SDKROOT)/usr/lib/system",
|
|
||||||
);
|
|
||||||
OTHER_CFLAGS = "-DHAVE_LIBIPATCHER";
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
USER_HEADER_SEARCH_PATHS = "/usr/local/opt/openssl/include /usr/local/include $(SRCROOT)/external/libgeneral/include $(SRCROOT)/external/tsschecker/external/jssy/jssy $(SRCROOT)/external/idevicerestore/src";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
8785874C1D89CFDC008689F0 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
|
||||||
HEADER_SEARCH_PATHS = "";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
/usr/local/lib,
|
|
||||||
/usr/lib,
|
|
||||||
/usr/local/opt/openssl/lib,
|
|
||||||
"$(SDKROOT)/usr/lib/system",
|
|
||||||
);
|
|
||||||
OTHER_CFLAGS = "-DHAVE_LIBIPATCHER";
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
USER_HEADER_SEARCH_PATHS = "/usr/local/opt/openssl/include /usr/local/include $(SRCROOT)/external/libgeneral/include $(SRCROOT)/external/tsschecker/external/jssy/jssy $(SRCROOT)/external/idevicerestore/src";
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
8785873E1D89CFDC008689F0 /* Build configuration list for PBXProject "futurerestore" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
878587481D89CFDC008689F0 /* Debug */,
|
|
||||||
878587491D89CFDC008689F0 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
8785874A1D89CFDC008689F0 /* Build configuration list for PBXNativeTarget "futurerestore" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
8785874B1D89CFDC008689F0 /* Debug */,
|
|
||||||
8785874C1D89CFDC008689F0 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 8785873B1D89CFDC008689F0 /* Project object */;
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace
|
|
||||||
version = "1.0">
|
|
||||||
<FileRef
|
|
||||||
location = "self:futurerestore.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IDEDidComputeMac32BitWarning</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,12 +0,0 @@
|
||||||
AM_CFLAGS = -I$(top_srcdir)/external/libgeneral/include -I$(top_srcdir)/external/tsschecker/external/jssy/jssy -I$(top_srcdir)/external/tsschecker/tsschecker -I$(top_srcdir)/external/idevicerestore/src $(libplist_CFLAGS) $(libzip_CFLAGS) $(libimobiledevice_CFLAGS) $(libfragmentzip_CFLAGS) $(libirecovery_CFLAGS) $(libimg4tool_CFLAGS) $(libgeneral_CFLAGS)
|
|
||||||
AM_LDFLAGS = $(libplist_LIBS) $(libzip_LIBS) $(libimobiledevice_LIBS) $(libfragmentzip_LIBS) $(libirecovery_LIBS) $(libimg4tool_LIBS) $(libgeneral_LIBS)
|
|
||||||
|
|
||||||
if HAVE_LIBIPATCHER
|
|
||||||
AM_LDFLAGS += $(libipatcher_LIBS)
|
|
||||||
AM_CFLAGS += $(libipatcher_CFLAGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
bin_PROGRAMS = futurerestore
|
|
||||||
futurerestore_CXXFLAGS = $(AM_CFLAGS)
|
|
||||||
futurerestore_LDADD = $(top_srcdir)/external/idevicerestore/src/libidevicerestore.la $(top_srcdir)/external/tsschecker/tsschecker/libtsschecker.la $(top_srcdir)/external/tsschecker/tsschecker/libjssy.a $(AM_LDFLAGS)
|
|
||||||
futurerestore_SOURCES = futurerestore.cpp main.cpp
|
|
57
src/CMakeLists.txt
Normal file
57
src/CMakeLists.txt
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
project(futurerestore)
|
||||||
|
add_executable(futurerestore
|
||||||
|
main.cpp
|
||||||
|
futurerestore.cpp)
|
||||||
|
target_include_directories(futurerestore PRIVATE
|
||||||
|
"${CMAKE_SOURCE_DIR}/dep_root/include"
|
||||||
|
"${CMAKE_SOURCE_DIR}/external/idevicerestore/src"
|
||||||
|
"${CMAKE_SOURCE_DIR}/external/tsschecker/external/jssy/jssy"
|
||||||
|
"${CMAKE_SOURCE_DIR}/external/tsschecker/tsschecker")
|
||||||
|
target_link_directories(futurerestore PRIVATE
|
||||||
|
"${CMAKE_SOURCE_DIR}/dep_root/lib"
|
||||||
|
"${CMAKE_SOURCE_DIR}/dep_root/lib/xpwn"
|
||||||
|
)
|
||||||
|
target_link_libraries(futurerestore PRIVATE
|
||||||
|
z
|
||||||
|
zip
|
||||||
|
png16
|
||||||
|
crypto
|
||||||
|
ssl
|
||||||
|
"-lgeneral"
|
||||||
|
plist-2.0
|
||||||
|
fragmentzip
|
||||||
|
img4tool
|
||||||
|
common
|
||||||
|
xpwn
|
||||||
|
insn
|
||||||
|
offsetfinder64
|
||||||
|
ipatcher
|
||||||
|
tsschecker
|
||||||
|
idevicerestore
|
||||||
|
jssy
|
||||||
|
curl
|
||||||
|
imobiledevice-glue-1.0
|
||||||
|
imobiledevice-1.0
|
||||||
|
irecovery-1.0
|
||||||
|
usbmuxd-2.0
|
||||||
|
pthread)
|
||||||
|
if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
|
target_link_libraries(futurerestore PRIVATE
|
||||||
|
compression
|
||||||
|
"-framework CoreFoundation"
|
||||||
|
"-framework IOKit")
|
||||||
|
else()
|
||||||
|
target_link_libraries(futurerestore PRIVATE
|
||||||
|
usb-1.0
|
||||||
|
dl
|
||||||
|
udev
|
||||||
|
lzfse)
|
||||||
|
endif()
|
||||||
|
execute_process(COMMAND git rev-list --count HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_COMMIT_COUNT ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND git rev-parse HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_COMMIT_SHA ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND cat version.txt WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" OUTPUT_VARIABLE VERSION_RELEASE ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
add_definitions(
|
||||||
|
-DHAVE_LIBIPATCHER=1
|
||||||
|
-DVERSION_COMMIT_COUNT="${VERSION_COMMIT_COUNT}"
|
||||||
|
-DVERSION_COMMIT_SHA="${VERSION_COMMIT_SHA}"
|
||||||
|
-DVERSION_RELEASE="${VERSION_RELEASE}")
|
|
@ -735,6 +735,10 @@ void futurerestore::enterPwnRecovery(plist_t build_identity, std::string bootarg
|
||||||
auto nonceelem = img4tool::getValFromIM4M({_im4ms[0].first, _im4ms[0].second}, 'BNCH');
|
auto nonceelem = img4tool::getValFromIM4M({_im4ms[0].first, _im4ms[0].second}, 'BNCH');
|
||||||
|
|
||||||
info("ApNonce pre-hax:\n");
|
info("ApNonce pre-hax:\n");
|
||||||
|
getDeviceMode(true);
|
||||||
|
retassure(((recovery_client_new(_client) == IRECV_E_SUCCESS) ||
|
||||||
|
(mutex_unlock(&_client->device_event_mutex), 0)),
|
||||||
|
"Failed to connect to device in Recovery Mode!");
|
||||||
if (get_ap_nonce(_client, &_client->nonce, &_client->nonce_size) < 0) {
|
if (get_ap_nonce(_client, &_client->nonce, &_client->nonce_size) < 0) {
|
||||||
reterror("Failed to get apnonce from device!");
|
reterror("Failed to get apnonce from device!");
|
||||||
}
|
}
|
|
@ -11,9 +11,6 @@
|
||||||
|
|
||||||
extern "C"{
|
extern "C"{
|
||||||
#include "tsschecker.h"
|
#include "tsschecker.h"
|
||||||
#undef VERSION_COMMIT_SHA
|
|
||||||
#undef VERSION_COMMIT_COUNT
|
|
||||||
#undef VERSION_RELEASE
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <libgeneral/macros.h>
|
#include <libgeneral/macros.h>
|
Loading…
Reference in a new issue