iPhoneCake 上提供的砸壳 IPA 只对启动时加载的 Framework 进行了 dump,导致在使用某些功能时可能因为 Framework 未找到而 crash,我给他们提过这个问题和解决方法,但一直都没有解决。
所以每次想在 IPAPatch 上使用最新版 Facebook 时,只能自行进行砸壳:
环境
- 越狱的 64位 iOS 设备 (iPhone 5s 或以上)
- Facebook 目前要求 iOS 8 以上
过程
iPhone 在 Cydia 安装
openssh
等常用工具,在 AppStore 安装最新版本Facebook
,并运行一下-
编译 https://github.com/Naituw/dumpdecrypted ,该版本会自动 dump 动态链接库
$ make
-
通过 ssh/scp 将 dumpdecrypted.dylib 文件传输到 iPhone 上
$ scp dumpdecrypted.dylib root@123.123.123.123:/usr/lib/
-
进行砸壳
-
定位 Facebook 二进制文件路径
ps -e | grep Facebook
-
注入 dumpdecreypted.dylib 并导出砸壳文件
# su root $ cd /private/var $ chmod a+rx /usr/lib/dumpdecrypted.dylib $ DYLD_INSERT_LIBRARIES=/usr/lib/dumpdecrypted.dylib /var/containers/Bundle/Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Facebook.app/Facebook
-
打包输出文件
$ zip -r facebook.zip Facebook.decrypted Frameworks/
-
-
将砸壳输出的文件通过 ssh/scp 传输到 Mac 上
$ scp root@123.123.123.123:/private/var/facebook.zip ~/Downloads/facebook.zip
-
解压原始 Facebook ipa 文件,用砸壳文件替换 bundle 内对应文件
原始 IPA 文件可以通过 Apple Configurator 2 下载: https://emm.how/t/downloading-ipa-file-from-app-store-onto-a-mac/525
打包 Payload 文件夹生成最终 IPA 文件