├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── bin └── README └── setup.sh /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | bin/ 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "tools/dt"] 2 | path = tools/dt 3 | url = https://github.com/Siguza/dt.git 4 | [submodule "tools/ldid"] 5 | path = tools/ldid 6 | url = https://github.com/rickmark/ldid.git 7 | branch = plist2 8 | [submodule "tools/img4lib"] 9 | path = tools/img4lib 10 | url = https://github.com/xerub/img4lib.git 11 | [submodule "tools/termz"] 12 | path = tools/termz 13 | url = https://github.com/kpwn/termz.git 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 checkra1n 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pongo-toolchain 2 | 3 | Get up and running in pongoOS quickly. This repo is a meta-repo that will 4 | clone, build and install the tools you'll need to do pongoOS / iDevice 5 | development. 6 | 7 | ## Included Tools 8 | 9 | ### `dt` 10 | 11 | Allows reading the Apple "Device Tree" format. 12 | 13 | ### `img4lib` 14 | 15 | Tools to extract img4 payloads 16 | 17 | ### `ldid` 18 | 19 | Tool for modifying a binary's entitlements 20 | 21 | ## Instructions 22 | 23 | * run `./setup.sh` 24 | 25 | ## Platform Support 26 | 27 | * macOS 28 | -------------------------------------------------------------------------------- /bin/README: -------------------------------------------------------------------------------- 1 | 2 | The files in this directory are populated from running `setup.sh` 3 | 4 | You should include this path into your system path. 5 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ "$(uname -s)" != "Darwin" ] 4 | then 5 | echo "Only Darwin (macOS) systems are supported with this tool. Feel free to create a PR!" 6 | exit -1 7 | fi 8 | 9 | if [ "$(which brew)x" == "x" ] 10 | then 11 | echo "Let's start with a sane homebrew environment, download https://brew.sh" 12 | exit -2 13 | fi 14 | 15 | if [ "$(which git)x" == "x" ] 16 | then 17 | echo "Looks like there is no git. Please install it and clone this repo instead of downloading it (we have submodules)" 18 | exit -3 19 | fi 20 | 21 | realpath() { 22 | [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" 23 | } 24 | 25 | git submodule update --init --recursive --remote 26 | 27 | brew bundle --file=- <<-EOS 28 | brew "automake" 29 | brew "autoconf" 30 | brew "openssl" 31 | brew "pkg-config" 32 | brew "libtool" 33 | brew "libplist" 34 | brew "lzfse" 35 | EOS 36 | 37 | export COMMONCRYPTO=1 38 | export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig" 39 | 40 | make -C tools/dt 41 | make -C tools/ldid 42 | make -C tools/img4lib 43 | make -C tools/termz 44 | 45 | 46 | cp tools/dt/dt bin/ 47 | cp tools/ldid/ldid bin/ 48 | cp tools/img4lib/img4 bin/ 49 | cp tools/termz/termz bin/ 50 | 51 | OUTPUT_DIR="$(dirname "$0")/bin" 52 | 53 | echo "Built your tools in: $OUTPUT_DIR" 54 | echo "Now add '$(realpath $OUTPUT_DIR)' to your system PATH" 55 | --------------------------------------------------------------------------------