Dyld shared cache: Difference between revisions

From iPhone Development Wiki
(Added decache.)
(copyedit)
Line 1: Line 1:
{{DISPLAYTITLE:dyld_shared_cache}}
{{DISPLAYTITLE:dyld_shared_cache}}


Starting from iPhoneOS 3.1, all default libraries are combined into a big cache file in <tt>/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armv6</tt> (or <tt>_armv7</tt>) to improve performance. The original files are no longer useful for non-on-device-developers, so they are eliminated from the system.  
Starting in iOS 3.1, all default libraries are combined into a big cache file in <tt>/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armv6</tt> (or <tt>_armv7</tt>) to improve performance. The original files are no longer useful for non-on-device-developers, so they are eliminated from the system.  


== Cache Extraction ==
== Cache extraction ==
Developers who does not use the SDK cannot link programs on the iOS directly due to the missing dylibs. One first need to extract the appropriate dylibs from the dyld_shared_cache. One could use [https://github.com/kennytm/Miscellaneous/downloads dyld_decache] by KennyTM~ to extract these dylibs.
Developers who do not use the SDK cannot link programs on iOS directly due to the missing dylibs. You first need to extract the appropriate dylibs from the dyld_shared_cache.


Alternatively, one could also use [https://gist.github.com/455086/ DySlim] by comex to mount the whole cache file on Mac OS X.
Options:
[https://github.com/phoenix3200/decache decache] by phoenixdev also works quite well.
 
* You could use [https://github.com/kennytm/Miscellaneous/downloads dyld_decache] by KennyTM~ to extract these dylibs.
* Alternatively, you could use [https://gist.github.com/455086/ DySlim] by comex to mount the whole cache file on Mac OS X.
* [https://github.com/phoenix3200/decache decache] by phoenixdev also works quite well.


== References ==
== References ==
* [http://blog.howett.net/?p=75 Cache or Check?] — an analysis of the dyld_shared_cache system by D. Howett.
* [http://blog.howett.net/?p=75 Cache or Check?] — an analysis of the dyld_shared_cache system by D. Howett.

Revision as of 06:22, 5 September 2013


Starting in iOS 3.1, all default libraries are combined into a big cache file in /System/Library/Caches/com.apple.dyld/dyld_shared_cache_armv6 (or _armv7) to improve performance. The original files are no longer useful for non-on-device-developers, so they are eliminated from the system.

Cache extraction

Developers who do not use the SDK cannot link programs on iOS directly due to the missing dylibs. You first need to extract the appropriate dylibs from the dyld_shared_cache.

Options:

  • You could use dyld_decache by KennyTM~ to extract these dylibs.
  • Alternatively, you could use DySlim by comex to mount the whole cache file on Mac OS X.
  • decache by phoenixdev also works quite well.

References

  • Cache or Check? — an analysis of the dyld_shared_cache system by D. Howett.