IPAPATCは、脱獄する必要なく、iOSアプリにパッチする簡単な方法を提供します。
[機能•指示•例•FAQ•ライセンス]
iPapatchには、次の機能を提供するテンプレートXcodeプロジェクトが含まれています。
コードを挿入した状態でサードパーティIPAを構築して実行します
IPAファイル内でダイナミックライブラリとして独自のコードを実行できます。したがって、Objective-C Runtimeを利用して、そのアプリの動作を変更できます。
YouTubeアプリでカスタムアラートを提示しました
LLDBを使用したステップバイステップのデバッグ
自分のようなサードパーティアプリをデバッグできます。例えば:
XcodeでYouTubeをデバッグします
外部フレームワークをリンクします
既存のフレームワークをリンクすることにより、露出など、サードパーティサービスをアプリに非常に簡単に統合できます。
LevelseServer.frameworkをリンクしてYouTubeを検査します
分散可能な.ipaファイルを生成します
ipapatchを生成した.ipaファイルの変更されたバージョンを使用して、パッチ/ワークを友達に簡単に配布できます。
IPAPATCHによって作成されたFacebook.ipaの修正バージョン
このプロジェクトをクローンまたはダウンロードしてください
このプロジェクトをローカルディスクにダウンロードしてください
復号化されたIPAファイルを準備します
使用するIPAファイルは復号化する必要があります。ジェイルブレイクされたデバイスから復号化されたIPAを取得するか、http://www.iphonecake.comなどのIPAダウンロードサイトから直接ダウンロードできます。
プレースホルダーIPAを交換します
IPAPatch/Assets/app.ipaにあるIPAファイルをあなたのものに置き換えます。これはプレースホルダーファイルです。ファイル名は、交換後にapp.ipaままでなければなりません。
外部リソース/フレームワークを配置する(オプション)
外部ファイルの種類に従うことがサポートされています。
IPAPatch/Assets/Frameworksフォルダーに配置できます。IPAPatch/Assets/Frameworks/RevealServer.frameworkIPAPatch/Assets/Dylibsフォルダーに配置できます。IPAPatch/Assets/Resourcesに配置できますビルド設定を構成します
IPAPatch.xcodeprojを開きますIPAPatch-DummyAppを選択しますDisplay Nameデフォルトで「?」になり、これは最終ディスプレイ名のプレフィックスとして使用されます。Bundle Identifier変更して、プロビジョニングプロファイルに一致させますiPpatchオプションを構成します
Tools/options.plistでiPapatchの動作を構成できます
| 名前 | 説明 | デフォルト |
|---|---|---|
| restore_symbols | YESの場合、iPapatchはマッハ-oのシンボルテーブルをデバッグ提案のために復元しようとします(https://github.com/tobefuturer/restore-symbolのツールを使用して、@henrayluoと@dannionのおかげで) | いいえ |
| create_ipa_file | YESの場合、iPapatchは各ビルドでIPAファイルを生成します。 GenRatedファイルはSRCROOT/Productにあります | いいえ |
| Ingrore_ui_supported_devices | YESの場合、ipapatchはソースアプリのInfo.plistからUISupportedDevicesを削除します | いいえ |
| remove_watchplaceholder | YESの場合、ipapatchはソースアプリのバンドルからcom.apple.WatchPlaceholderフォルダーを削除します | はい |
| use_original_entitlements | YESの場合、iPapatchはソースアプリの資格を使用して辞任する場合、プロビジョニングプロファイルがAMFIと一致することを確認する必要があります。 | いいえ |
パッチをコーディングします
エントリは+[IPAPatchEntry load]で、ここからコード開始を記述できます。アプリの動作を変更するには、Steipete/Aspectsなどのライブラリをスウィズリングする方法を使用する必要がある場合があります。
構築して実行します
実際のデバイスを選択し、Xcodeの左上隅にある「実行」ボタンを押します。書いたコードと配置した外部フレームワークは、IPAファイルに自動的に挿入されます。
IPAPatch使用方法を示すデモプロジェクトを作成しました。
Q:ライブラリは理由でロードされていません: mach-o, but wrong architecture ?
IPAPatchターゲットのValid Architecturesを設定してみてください。Q:プロセスの起動が失敗しました:不特定(無効)?
Q:dyld:シンボルが見つかっていない:xxx、参照:xxx、予想:xxx/libswiftxx.dylib
IPAPATCHは、MITライセンスに基づいてライセンスされています。
Copyright (c) 2017-present Wu Tian <[email protected]>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Copyright (c) 2014, Alex Zielenski
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright (c) 2013, Facebook, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.