{"id":82,"date":"2011-05-15T20:59:54","date_gmt":"2011-05-15T19:59:54","guid":{"rendered":"http:\/\/conorburgess.com\/wordpress\/?p=82"},"modified":"2012-03-30T11:52:39","modified_gmt":"2012-03-30T10:52:39","slug":"dump-public-and-private-ios-frameworks","status":"publish","type":"post","link":"https:\/\/conorburgess.com\/wordpress\/?p=82","title":{"rendered":"Dump Public and Private iOS Frameworks"},"content":{"rendered":"<p>So the other night I got annoyed at updating a script I made to dump iOS frameworks, and so I decided to re-write it. The result is a script which I am confident is good enough to share with the world.<\/p>\n<p>I&#8217;m releasing it under the GNU General Public License Version 3.<\/p>\n<p>These scripts dump all of the iOS frameworks (both public and private) and then patch the #import commands.<br \/>\nThe headers are then merged with the existing iOS headers in your SDK, without overwriting any Apple headers.<\/p>\n<p>Instructions for use are below, though these are also included in the zip.<\/p>\n<p>You can download it <a href=\"http:\/\/conorburgess.com\/downloads\/DumpFrameworks.zip\">here.<\/a><\/p>\n<p><strong>PRE-REQUISITES<\/strong><\/p>\n<p>You will need to download class-dump from <a href=\"http:\/\/www.codethecode.com\/projects\/class-dump\/\">here<\/a> and then copy just the executable to &#8220;\/usr\/bin\/&#8221; on your Mac.<\/p>\n<p>You will also need to download subtrate.h from <a href=\"http:\/\/svn.saurik.com\/repos\/menes\/trunk\/mobilesubstrate\/substrate.h\">here<\/a> and place it in the same folder as the scripts.<\/p>\n<p>You will need to copy libsubstrate.dylib from &#8220;\/usr\/lib\/libsubstrate.dylib&#8221; on a jailbroken iOS device with MobileSubstrate installed to the same folder as the scripts and substrate.h on your Mac.<\/p>\n<p><strong>USAGE<\/strong><\/p>\n<p>cd to the directory with the scripts and substrate.h in:<\/p>\n<p><code>Burgch$ cd ~\/Desktop\/DumpFrameworks<\/code><\/p>\n<p>The script takes one argument; the SDK directory for the SDK you would like to dump.<\/p>\n<p>Run the script:<\/p>\n<p><code>Burgch$ .\/DumpFrameworks.sh \/Developer\/Platforms\/iPhoneOS.platform\/Developer\/SDKs\/iPhoneOS4.3.sdk<\/code><\/p>\n<p>When prompted, enter your super user password (this is required to copy the header files back to the SDK (you can check the script if you don&#8217;t believe me :P)<\/p>\n<p>That&#8217;s it, you&#8217;re done, all header files for the SDK have been dumped, patched, and merged. You should receive a successful completion message to confirm.  Wasn&#8217;t that easy? :P<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So the other night I got annoyed at updating a script I made to dump iOS frameworks, and so I decided to re-write it. The result is a script which I am confident is good enough to share with the world. I&#8217;m releasing it under the GNU General Public License Version 3. These scripts dump &hellip; <a href=\"https:\/\/conorburgess.com\/wordpress\/?p=82\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Dump Public and Private iOS Frameworks<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,3],"tags":[],"class_list":["post-82","post","type-post","status-publish","format-standard","hentry","category-general","category-jailbreak"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4zPbt-1k","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=82"}],"version-history":[{"count":4,"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/82\/revisions"}],"predecessor-version":[{"id":97,"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/82\/revisions\/97"}],"wp:attachment":[{"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/conorburgess.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}