Welcome: Difference between revisions

From iPhone Development Wiki
(link to my Bluetooth info)
m (Re-add featured page.)
(188 intermediate revisions by 26 users not shown)
Line 1: Line 1:
== About this wiki ==
__NOTOC__
{{DISPLAYTITLE:<span style="position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);">{{FULLPAGENAME}}</span>}}


The sum of all human<ref> We'll make an exception for lawyers; they may submit too. Cf. http://wiki.creativecommons.org/Frequently_Asked_Questions#How_does_a_Creative_Commons_license_operate.3F: "Creative Commons licenses are expressed in three different formats: the Commons Deed (human-readable code), the Legal Code (lawyer-readable code); and the metadata (machine readable code)."</ref> knowledge about iPhone Development.
<div>
<div style="margin-top: 2em;">
<h1 style="position: absolute;top: -17px;"><span class="mw-headline" id="Welcome_to_the_iPhoneDevWiki">Welcome to the iPhoneDevWiki</span></h1>
Our goal is to share the sum of all human<ref> We'll make an exception for lawyers; they may submit too. Cf. http://wiki.creativecommons.org/Frequently_Asked_Questions#How_does_a_Creative_Commons_license_operate.3F: "Creative Commons licenses are expressed in three different formats: the Commons Deed (human-readable code), the Legal Code (lawyer-readable code); and the metadata (machine readable code)."</ref> knowledge about jailbroken iOS development. In other words, this is a collection of documentation written by developers to help each other write extensions (tweaks) for jailbroken iOS, and you're invited to learn from it and contribute to it too.


== Ideas on what to add to this wiki ==
What is this wiki for?


* Information regarding usage of iPhone OS Frameworks, both public and private, SpringBoard, system daemons (for hooking and hacking), and classes in applications included with the system
* Information about using iOS frameworks, system daemons (for hooking and hacking), and other iOS internals.
* Information about third-party libraries or extensions for developers (PreferenceLoader, libhide, etc.)
* Information about third-party libraries and extensions for developers.
* Questions about development (to be answered by others; please keep questions in talk pages.)
* Useful information for reverse engineers and tweak developers.
* Links to useful information
* Documentation about making [http://iphonedevwiki.net/index.php/Category:Preferences preferences] for tweaks.
* Links to open-source projects
* Anything else about development for jailbroken iOS devices.


== Why another wiki? ==
<b>Feature Page: [[ Updating extensions for iOS 15/16 ]] </b>


The iPhone Wiki seems to be more user-oriented, and this wiki '''specifically''' targets development.
=== Other Community Resources ===


== Quick start ==
* [https://theapplewiki.com/wiki/Main_Page The Apple Wiki] Newer, (currently) more maintained alternative to The iPhone Wiki.
What are you looking for?
* [http://theiphonewiki.com The iPhone Wiki] Topics including jailbreak exploits, internal iOS systems, and iOS hardware details. [http://theiphonewiki.com/wiki/Up_to_Speed "Up to Speed"] is its getting-started page about learning about security research on iOS.
* [https://appledb.dev/ AppleDB] Apple Device Database
* [https://github.com/hack-different/apple-knowledge Apple Knowledge Repo] Repo conglomerating various sources on Apple Internal Systems.


* '''Frameworks''':
Doing some late-night hacking / tired of the eye strain? 2-step instructions on how to turn on dark mode are over at [[Dark Mode]].
** {{fwlink|UIKit}} &bull; {{fwlink|GraphicsServices}} &bull; {{fwlink|AppSupport}} &bull; '''''[[Template:Navbox Frameworks|more »]]'''''
* '''Applications''':
** {{applink|SpringBoard}} &bull; {{applink|Preferences}} &bull; {{applink|MobileSafari}} &bull; '''''[[Template:Navbox Applications|more »]]'''''
* '''Extensions''':
** [[MobileSubstrate]] &bull; [[SBSettings]] &bull; [[ActionMenu]] &bull; '''''[[:Category:Cydia_packages|more »]]'''''
* '''System directories''':
** [[PreferenceBundles]] &bull; [[Carrier Bundles]] &bull; [[Internet Plug-Ins]] &bull; '''''[[Template:Navbox_Library|more »]]'''''
* '''Development''':
** [[Xcode#Developing_without_Provisioning_Profile|Bypass Provisioning Profile]] • [[debugserver|Remote debugging]]  


* '''Hardware''':
</div>
** [http://code.google.com/p/btstack/wiki/iPhoneBluetooth Bluetooth]
<div>
 
== Getting started ==
 
New to developing for jailbroken devices? Welcome, it's fun and challenging! Hopefully you already have some experience with Objective-C. You will want to get familiar with [[MobileSubstrate|Cydia Substrate (formerly called MobileSubstrate)]] and [[Theos]], and you can study some [[Open Source Projects]] to see how existing tweaks work. See '''[[Getting Started]]''' and also take a look at [[Best Practices]] and [[MobileSubstrate Pitfalls]]. If you're looking for a more thorough and sequential tutorial, take a look at the book ''[http://iosre.com/t/ios-app-reverse-engineering-the-worlds-1st-book-of-very-detailed-ios-app-reverse-engineering-skills/1117 iOS App Reverse Engineering]'' and its forum [http://bbs.iosre.com iOSRE].
 
'''[[Getting Help | How to ask for help]]:''' There are tags for [http://stackoverflow.com/questions/tagged/jailbreak "jailbreak"], [http://stackoverflow.com/questions/tagged/cydia "Cydia"], and [http://stackoverflow.com/questions/tagged/theos "Theos"] on Stack Overflow, a site for programming questions in general; feel free to ask there as well.  On reddit, there's [http://www.reddit.com/r/jailbreakdevelopers/ /r/jailbreakdevelopers]. For non-development-related troubleshooting questions, try [http://www.reddit.com/r/jailbreak/ /r/jailbreak].
 
</div>
</div>
 
== Overview of contents ==
 
<div class="flex">
<div>
=== Frameworks: ===
* {{fwlink|UIKit}}
* {{fwlink|GraphicsServices}}
* {{fwlink|AppSupport}}
* {{fwlink|BiometricKit}}
* {{fwlink|ChatKit}}
* {{fwlink|MobileWiFi}}
* '''''[[Frameworks|more »]]'''''
 
=== Applications: ===
* [[SpringBoard]]
* {{applink|Preferences}}
* {{applink|MobileSafari}}
* '''''[[:Category:Applications | more »]]'''''
 
=== System directories: ===
* [[Frameworks]]
* [[Internet Plug-Ins]]
* [[PreferenceBundles]]
* [[PrivateFrameworks]]
* '''''[[Template:Navbox_Library|more »]]'''''
 
=== Other parts of iOS: ===
* [[dyld_shared_cache]]
* [[Bluetooth]]
* [[CgBI file format]]
* [[Coprocessors]]
* [[Daemons]]
* [[Entitlements]]
* [[iOS Keyboard]]
* [[launchd]]
* [[NFC]]
* [[Notifications]]
* [[Seatbelt]]
 
=== By iOS Version ===
 
* '''New in iOS 15:''' [[Updating extensions for iOS 15/16]]
* '''New in iOS 14:''' [[Updating extensions for iOS 14]]
* '''New in iOS 13:''' [[Updating extensions for iOS 13]]
* '''New in iOS 12:''' [[Updating extensions for iOS 12]]
* '''New in iOS 11:''' [[Updating extensions for iOS 11]]
* '''New in iOS 10:''' [[Updating extensions for iOS 10]], [[ControlCenterUI.framework]], [[UserNotificationsUIKit.framework]].
* '''New in iOS 9:''' [[Updating extensions for iOS 9]], [[Updating extensions for iOS 9.3.3]], [[Breadcrumbs]].
* '''New in iOS 8:''' [[Updating extensions for iOS 8]], [[AssertionServices.framework]], [[SBSRestartRenderServerAction]], [[FBSSystemService]], [[UIAlertController]].
* '''New in iOS 7:''' [[Updating extensions for iOS 7]], [[Debugging on iOS 7]], [[Downgrading iPhone 4 from iOS 7]], [[BiometricKit.framework]], [[TouchID]], [[UIBackdropView]], [[AVFlashlight]], [[SBAppSliderController]].
* '''New in iOS 6:''' [[BackBoardServices.framework]], [[backboardd]], [[ChatKit.framework]], [[BKSProcessAssertion]].
* '''New in iOS 5:''' [[SBIconView]], [[CKMadridService]], [[SBAppContextHostManager]].
* '''New in iOS 4:''' [[SBAppSwitcherModel]].
 
</div>
<div>
 
=== Development tools: ===
* [[Theos]], [[Logos]], [[NIC]], [[Logify]]
* [[Reverse Engineering Tools]]
* [[Jailbreak Development Tools]]
* [[Preferences specifier plist]]
* [[SSH Over USB]]
* [[MobileSubstrate|Cydia Substrate (MobileSubstrate)]]
* [[debugserver|debugserver (remote debugging)]]
* [[ldid]]
* [[On-device toolchains]]
* [[Retrieving SDKs]]
* [[Xcode|Xcode &ndash; Bypass Provisioning Profile]]
 
=== Extensions: ===
* [[PreferenceLoader]]
* [[RocketBootstrap]]
* [[libactivator]]
* '''''[[:Category:Cydia_packages|more »]]'''''
 
=== Other articles about development: ===
* [[Getting Started]]
* [[Best Practices]]
* [[MobileSubstrate Pitfalls]]
* [[Open Source Projects]]
* [[Advice for new developers]]
* [[Cydia Store Integration]]
* [[Tweak DRM]]
* [[Code Signing]]
* [[Repository Management]]
* [[Packaging]]
* [[Crack prevention]]
* [[List of development blogs]]
* [[Using ARC in tweaks]]
* [[Career advice]]
 
</div>
</div>
 
 
 
Translated articles:
 
* '''Français''': [[Main page/fr]] &bull; [[MobileSubstrate/fr]] &bull; [[SSH Over USB/fr]] &bull; [[UIFont/fr]] &bull; [[UIColor/fr]] &bull; [[ActorKit.framework/fr]] &bull; [[IOSOpenDev/fr]]
* '''ไทย''': [[SSH Over USB/th]] &bull; [[SpringBoard.app/th]] &bull; [[UIColor/th]]
* '''Deutsch''': [[Theos/de]]


<!-- {{Navbox Frameworks}}
<!-- {{Navbox Frameworks}}
{{Navbox Applications}} -->
{{Navbox Applications}} -->
<div class="flex">
<div>


== Editing this wiki ==
== Editing this wiki ==


* If you have anything at all to contribute, feel free to do so!
* If you have anything at all to contribute, feel free to do so!
* An account is required to edit pages.


Some ideas for information to contribute:
* Add more projects to the list of [[Open Source Projects]], or fill out details on that page.
* Expand [[Getting Started]] for new developers - what do they need to know before beginning? How do they set up a development environment on OS X, Windows, and Linux? What are common beginner's mistakes that they should watch out for? How to reverse-engineer parts of iOS for writing tweaks? How to debug with GDB and learn about memory management?
* Update articles that haven't been significantly edited in a few years, such as [[Seatbelt]] and [[Crack prevention]]. See [[Special:AncientPages]] for a list of articles that haven't been updated recently.
* Help [[Cycript]] explain why Cycript is fun - syntax highlighting, injection, auto-completion, generally exploring around.
* Make a page that documents a class or framework you're familiar with.
* If you've developed a library that other developers can use or write addons/plugins/extensions for, make a page that documents your project.
* Update [[Xcode]] with better information about how to build apps for jailbroken devices.
* Make the homepage more useful! For example, add links to good pages that are hidden/buried deep within the wiki.
* The following articles are linked from nowhere in the wiki: [[Special:LonelyPages]] - you can fix that by linking them somewhere.
* Check out the most popular pages and see if they need updating: [[Special:PopularPages]].
* Write an article that is in demand: [[Special:WantedPages]].
* Translate an existing article into a non-English language. Check out the list at [[Special:PopularPages]] for ideas about high-priority articles to translate, and then make a new page with this name format: <code>Article name/[language code]</code>. [http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/languages/Names.php Here's the list of language codes.] For example: [[PreferenceLoader/de]] or [[Libactivator/sv]].
</div>
<div>
== Good Edit Candidates ==
If you're looking for some articles to work on that dont require a ton of in-depth RE, or are important yet woefully outdated, the following articles are good candidates:
* [[Jailbreak detection]]
* [[CATransition]]
* [[Code Signing]] - Not bad info, needs updated primary instructions for current year
* [[Notifications]] - Update with info about MuireyIPC, new pages, etc. 
* [[Best_Practices]]
* [[IOS Keyboard]] - Woefully outdated + no useful info
* [[IWidgets]] - Conglomerate and link to modern replacements.
</div>
</div>
----
----


<references />
<references />

Revision as of 22:57, 25 March 2023


Welcome to the iPhoneDevWiki

Our goal is to share the sum of all human[1] knowledge about jailbroken iOS development. In other words, this is a collection of documentation written by developers to help each other write extensions (tweaks) for jailbroken iOS, and you're invited to learn from it and contribute to it too.

What is this wiki for?

  • Information about using iOS frameworks, system daemons (for hooking and hacking), and other iOS internals.
  • Information about third-party libraries and extensions for developers.
  • Useful information for reverse engineers and tweak developers.
  • Documentation about making preferences for tweaks.
  • Anything else about development for jailbroken iOS devices.

Feature Page: Updating extensions for iOS 15/16

Other Community Resources

  • The Apple Wiki Newer, (currently) more maintained alternative to The iPhone Wiki.
  • The iPhone Wiki Topics including jailbreak exploits, internal iOS systems, and iOS hardware details. "Up to Speed" is its getting-started page about learning about security research on iOS.
  • AppleDB Apple Device Database
  • Apple Knowledge Repo Repo conglomerating various sources on Apple Internal Systems.

Doing some late-night hacking / tired of the eye strain? 2-step instructions on how to turn on dark mode are over at Dark Mode.

Getting started

New to developing for jailbroken devices? Welcome, it's fun and challenging! Hopefully you already have some experience with Objective-C. You will want to get familiar with Cydia Substrate (formerly called MobileSubstrate) and Theos, and you can study some Open Source Projects to see how existing tweaks work. See Getting Started and also take a look at Best Practices and MobileSubstrate Pitfalls. If you're looking for a more thorough and sequential tutorial, take a look at the book iOS App Reverse Engineering and its forum iOSRE.

How to ask for help: There are tags for "jailbreak", "Cydia", and "Theos" on Stack Overflow, a site for programming questions in general; feel free to ask there as well. On reddit, there's /r/jailbreakdevelopers. For non-development-related troubleshooting questions, try /r/jailbreak.

Overview of contents

Frameworks:

Applications:

System directories:

Other parts of iOS:

By iOS Version


Translated articles:


Editing this wiki

  • If you have anything at all to contribute, feel free to do so!

Some ideas for information to contribute:

  • Add more projects to the list of Open Source Projects, or fill out details on that page.
  • Expand Getting Started for new developers - what do they need to know before beginning? How do they set up a development environment on OS X, Windows, and Linux? What are common beginner's mistakes that they should watch out for? How to reverse-engineer parts of iOS for writing tweaks? How to debug with GDB and learn about memory management?
  • Update articles that haven't been significantly edited in a few years, such as Seatbelt and Crack prevention. See Special:AncientPages for a list of articles that haven't been updated recently.
  • Help Cycript explain why Cycript is fun - syntax highlighting, injection, auto-completion, generally exploring around.
  • Make a page that documents a class or framework you're familiar with.
  • If you've developed a library that other developers can use or write addons/plugins/extensions for, make a page that documents your project.
  • Update Xcode with better information about how to build apps for jailbroken devices.
  • Make the homepage more useful! For example, add links to good pages that are hidden/buried deep within the wiki.
  • The following articles are linked from nowhere in the wiki: Special:LonelyPages - you can fix that by linking them somewhere.
  • Check out the most popular pages and see if they need updating: Special:PopularPages.
  • Write an article that is in demand: Special:WantedPages.
  • Translate an existing article into a non-English language. Check out the list at Special:PopularPages for ideas about high-priority articles to translate, and then make a new page with this name format: Article name/[language code]. Here's the list of language codes. For example: PreferenceLoader/de or Libactivator/sv.

Good Edit Candidates

If you're looking for some articles to work on that dont require a ton of in-depth RE, or are important yet woefully outdated, the following articles are good candidates:


  1. We'll make an exception for lawyers; they may submit too. Cf. http://wiki.creativecommons.org/Frequently_Asked_Questions#How_does_a_Creative_Commons_license_operate.3F: "Creative Commons licenses are expressed in three different formats: the Commons Deed (human-readable code), the Legal Code (lawyer-readable code); and the metadata (machine readable code)."