Dyld shared cache: Difference between revisions

From iPhone Development Wiki
(Created page with '{{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_…')
 
(Removed the huge dylib list, it is very easy to generate one; dyldcache -> dyld_decache & DySlim (on gist))
Line 4: Line 4:


== Cache Extraction ==
== Cache Extraction ==
Developers who does not use the SDK cannot link programs on the iPhoneOS directly due to the missing dylibs. One first need to extract the appropriate dylibs from the dyld_shared_cache. A tool <tt>dyldcache</tt><ref><tt>dyldcache</tt> was originally written by D. Howett and later modified by KennyTM~ to allow specified extraction and listing of cached dylibs. The binary can be downloaded from [http://code.google.com/p/networkpx/downloads/detail?name=dyldcache] and the source code can be obtained from [http://code.google.com/p/networkpx/source/browse/etc/dyldcache.cc].</ref> has been written for this purpose. Note that, if everything is extracted, the total size will be over 4 GB, so be sure to clear up some space.
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.
 
Alternatively, one could also use [https://gist.github.com/455086/ DySlim] by comex to mount the whole cache file on Mac OS X.


{| class="wikitable collapsible collapsed" width="100%"
! colspan="2" | List of recognized libraries that are in dyld_shared_cache (on iPod Touch 1G)
|-
! rowspan="14" valign="top" | /System/Library/CoreServices/Encodings/
| libArabicConverter.dylib
|-
| libCyrillicConverter.dylib
|-
| libGreekConverter.dylib
|-
| libHebrewConverter.dylib
|-
| libJapaneseConverter.dylib
|-
| libKoreanConverter.dylib
|-
| libLatin2Converter.dylib
|-
| libLatin5Converter.dylib
|-
| libLatinSuppConverter.dylib
|-
| libSimplifiedChineseConverter.dylib
|-
| libSymbolConverter.dylib
|-
| libThaiConverter.dylib
|-
| libTraditionalChineseConverter.dylib
|-
| libVietnameseConverter.dylib
|-
! rowspan="37" valign="top" | /System/Library/Frameworks/
| AVFoundation.framework/AVFoundation
|-
| AddressBook.framework/AddressBook
|-
| AddressBookUI.framework/AddressBookUI
|-
| AudioToolbox.framework/AudioCodecs
|-
| AudioToolbox.framework/AudioToolbox
|-
| CFNetwork.framework/CFNetwork
|-
| CoreAudio.framework/CoreAudio
|-
| CoreData.framework/CoreData
|-
| CoreFoundation.framework/CoreFoundation
|-
| CoreGraphics.framework/CoreGraphics
|-
| CoreGraphics.framework/Resources/libCGFreetype.A.dylib
|-
| CoreGraphics.framework/Resources/libCGFreetype.dylib
|-
| CoreGraphics.framework/Resources/libCGVolute.A.dylib
|-
| CoreGraphics.framework/Resources/libCMaps.A.dylib
|-
| CoreGraphics.framework/Resources/libJBIG2.A.dylib
|-
| CoreGraphics.framework/Resources/libJBIG2.dylib
|-
| CoreGraphics.framework/Resources/libPDFRIP.A.dylib
|-
| CoreGraphics.framework/Resources/libRIP.A.dylib
|-
| CoreLocation.framework/CoreLocation
|-
| ExternalAccessory.framework/ExternalAccessory
|-
| Foundation.framework/Foundation
|-
| GameKit.framework/GameKit
|-
| IOKit.framework/IOKit
|-
| IOKit.framework/Versions/A/IOKit
|-
| MapKit.framework/MapKit
|-
| MediaPlayer.framework/MediaPlayer
|-
| MessageUI.framework/MessageUI
|-
| MobileCoreServices.framework/MobileCoreServices
|-
| OpenAL.framework/OpenAL
|-
| OpenGLES.framework/OpenGLES
|-
| QuartzCore.framework/QuartzCore
|-
| Security.framework/Security
|-
| StoreKit.framework/StoreKit
|-
| System.framework/System
|-
| System.framework/Versions/B/System
|-
| SystemConfiguration.framework/SystemConfiguration
|-
| UIKit.framework/UIKit
|-
! rowspan="7" valign="top" | /System/Library/ManagedConfigurationBundles/
| MCAPNConfigurationBundle.bundle/MCAPNConfigurationBundle
|-
| MCCalDAVConfigurationBundle.bundle/MCCalDAVConfigurationBundle
|-
| MCEASConfigurationBundle.bundle/MCEASConfigurationBundle
|-
| MCEmailConfigurationBundle.bundle/MCEmailConfigurationBundle
|-
| MCLDAPConfigurationBundle.bundle/MCLDAPConfigurationBundle
|-
| MCNetworkingConfigurationBundle.bundle/MCNetworkingConfigurationBundle
|-
| MCSubCalConfigurationBundle.bundle/MCSubCalConfigurationBundle
|-
! rowspan="23" valign="top" | /System/Library/PreferenceBundles/
| AccountSettings/ActiveSyncSettings.bundle/ActiveSyncSettings
|-
| AccountSettings/CalDAVSettings.bundle/CalDAVSettings
|-
| AccountSettings/ContactsSettings.bundle/ContactsSettings
|-
| AccountSettings/DeviceLocalAccountSettings.bundle/DeviceLocalAccountSettings
|-
| AccountSettings/LDAPSettings.bundle/LDAPSettings
|-
| AccountSettings/MobileCalSettings.bundle/MobileCalSettings
|-
| AccountSettings/MobileMailSettings.bundle/MobileMailSettings
|-
| AccountSettings/SubscribedCalendarSettings.bundle/SubscribedCalendarSettings
|-
| AccountSettingsUI.bundle/AccountSettingsUI
|-
| AirPortSettings.bundle/AirPortSettings
|-
| BluetoothSettings.bundle/BluetoothSettings
|-
| EDGESettings.bundle/EDGESettings
|-
| ManagedConfigurationUI.bundle/ManagedConfigurationUI
|-
| MobileSafariSettings.bundle/MobileSafariSettings
|-
| MobileSlideShowSettings.bundle/MobileSlideShowSettings
|-
| MobileStoreSettings.bundle/MobileStoreSettings
|-
| MusicSettings.bundle/MusicSettings
|-
| NotificationSettings.bundle/NotificationSettings
|-
| ScheduleSettings.bundle/ScheduleSettings
|-
| VPNPreferences.bundle/VPNPreferences
|-
| VideoSettings.bundle/VideoSettings
|-
| Wallpaper.bundle/Wallpaper
|-
| iPodSettings.bundle/iPodSettings
|-
! rowspan="90" valign="top" | /System/Library/PrivateFrameworks/
| AOSNotification.framework/AOSNotification
|-
| Accelerate.framework/Accelerate
|-
| Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib
|-
| Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dylib
|-
| Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib
|-
| Accelerate.framework/Frameworks/vecLib.framework/vecLib
|-
| AccessorySupport.framework/AccessorySupport
|-
| AccountSettings.framework/AccountSettings
|-
| AccountSettingsUI.framework/AccountSettingsUI
|-
| ActorKit.framework/ActorKit
|-
| AdminLite.framework/AdminLite
|-
| AggregateDictionary.framework/AggregateDictionary
|-
| AppSupport.framework/AppSupport
|-
| AppleJPEG.framework/AppleJPEG
|-
| ApplePushService.framework/ApplePushService
|-
| ArtworkCache.framework/ArtworkCache
|-
| BluetoothManager.framework/BluetoothManager
|-
| Bom.framework/Bom
|-
| Calculate.framework/Calculate
|-
| Calendar.framework/Calendar
|-
| CalendarUI.framework/CalendarUI
|-
| Camera.framework/Camera
|-
| Celestial.framework/Celestial
|-
| ChatKit.framework/ChatKit
|-
| ContentIndex.framework/ContentIndex
|-
| CoreMedia.framework/CoreMedia
|-
| CoreSurface.framework/CoreSurface
|-
| CoreTelephony.framework/CoreTelephony
|-
| CoreTelephonyBypass.framework/CoreTelephonyBypass
|-
| CoreText.framework/CoreText
|-
| CoreVideo.framework/CoreVideo
|-
| CrashReporterSupport.framework/CrashReporterSupport
|-
| DAVKit.framework/DAVKit
|-
| DataAccess.framework/DataAccess
|-
| DataAccessExpress.framework/DataAccessExpress
|-
| DataDetectorsCore.framework/DataDetectorsCore
|-
| DataDetectorsUI.framework/DataDetectorsUI
|-
| DataMigration.framework/DataMigration
|-
| DeviceToDeviceManager.framework/DeviceToDeviceManager
|-
| EAP8021X.framework/EAP8021X
|-
| GMM.framework/GMM
|-
| GraphicsServices.framework/GraphicsServices
|-
| IAP.framework/IAP
|-
| IOMobileFramebuffer.framework/IOMobileFramebuffer
|-
| IOSurface.framework/IOSurface
|-
| ITSync.framework/ITSync
|-
| ImageIO.framework/ImageIO
|-
| JSON.framework/JSON
|-
| JavaScriptCore.framework/JavaScriptCore
|-
| LDAP.framework/LDAP
|-
| MBX2D.framework/MBX2D
|-
| MIME.framework/MIME
|-
| ManagedConfiguration.framework/ManagedConfiguration
|-
| MediaToolbox.framework/MediaToolbox
|-
| Message.framework/Message
|-
| MobileBluetooth.framework/MobileBluetooth
|-
| MobileDeviceLink.framework/MobileDeviceLink
|-
| MobileInstallation.framework/MobileInstallation
|-
| MobileMusicPlayer.framework/MobileMusicPlayer
|-
| MobileQuickLook.framework/MobileQuickLook
|-
| MobileSync.framework/MobileSync
|-
| MobileWiFi.framework/MobileWiFi
|-
| MobileWirelessSync.framework/MobileWirelessSync
|-
| MultitouchSupport.framework/MultitouchSupport
|-
| MusicLibrary.framework/MusicLibrary
|-
| Notes.framework/Notes
|-
| OfficeImport.framework/OfficeImport
|-
| PersistentConnection.framework/PersistentConnection
|-
| PhotoLibrary.framework/PhotoLibrary
|-
| Preferences.framework/Preferences
|-
| ProtocolBuffer.framework/ProtocolBuffer
|-
| SMSCTServer.framework/SMSCTServer
|-
| Search.framework/Search
|-
| ServiceManagement.framework/ServiceManagement
|-
| SpringBoardServices.framework/SpringBoardServices
|-
| SpringBoardUI.framework/SpringBoardUI
|-
| Symbolication.framework/Symbolication
|-
| TelephonyUI.framework/TelephonyUI
|-
| TextInput.framework/TextInput
|-
| VideoToolbox.framework/VideoToolbox
|-
| VisualVoicemail.framework/VisualVoicemail
|-
| WebCore.framework/WebCore
|-
| WebKit.framework/WebKit
|-
| WebUI.framework/WebUI
|-
| XMPP.framework/XMPP
|-
| YouTube.framework/YouTube
|-
| iCalendar.framework/iCalendar
|-
| iTunesStore.framework/iTunesStore
|-
| iTunesStoreUI.framework/iTunesStoreUI
|-
| iWorkImport.framework/iWorkImport
|-
! rowspan="2" valign="top" | /System/Library/PublishingBundles/
| PublishToMobileMe.bundle/PublishToMobileMe
|-
| PublishToYouTube.bundle/PublishToYouTube
|-
! rowspan="5" valign="top" | /System/Library/SearchBundles/
| AddressBook.searchBundle/AddressBook
|-
| MobileCal.searchBundle/MobileCal
|-
| MobileMail.searchBundle/MobileMail
|-
| MobileNotes.searchBundle/MobileNotes
|-
| iPod.searchBundle/iPod
|-
! /System/Library/SystemConfiguration/
| CaptiveNetworkSupport.bundle/CaptiveNetworkSupport
|-
! rowspan="16" valign="top" | /System/Library/TextInput/
| TextInput_ar.bundle/TextInput_ar
|-
| TextInput_cs.bundle/TextInput_cs
|-
| TextInput_de.bundle/TextInput_de
|-
| TextInput_el.bundle/TextInput_el
|-
| TextInput_emoji.bundle/TextInput_emoji
|-
| TextInput_fr.bundle/TextInput_fr
|-
| TextInput_he.bundle/TextInput_he
|-
| TextInput_it.bundle/TextInput_it
|-
| TextInput_ja.bundle/TextInput_ja
|-
| TextInput_ko.bundle/TextInput_ko
|-
| TextInput_ru.bundle/TextInput_ru
|-
| TextInput_sk.bundle/TextInput_sk
|-
| TextInput_th.bundle/TextInput_th
|-
| TextInput_tr.bundle/TextInput_tr
|-
| TextInput_uk.bundle/TextInput_uk
|-
| TextInput_zh.bundle/TextInput_zh
|-
! rowspan="3" valign="top" | /System/Library/VideoDecoders/
| H264H1.videodecoder
|-
| MP4VH1.videodecoder
|-
| VCH263.videodecoder
|-
! rowspan="2" valign="top" | /System/Library/VideoEncoders/
| JPEGH1.videoencoder
|-
| VCH263.videoencoder
|-
! rowspan="67" valign="top" | /usr/lib/
| libIOAccessoryManager.dylib
|-
| libQLCharts.dylib
|-
| libSystem.B.dylib
|-
| libSystem.dylib
|-
| libafc.dylib
|-
| libblas.dylib
|-
| libbsm.0.dylib
|-
| libbsm.dylib
|-
| libbz2.1.0.4.dylib
|-
| libbz2.1.0.dylib
|-
| libbz2.dylib
|-
| libc.dylib
|-
| libcblas.dylib
|-
| libcharset.1.dylib
|-
| libcharset.dylib
|-
| libclapack.dylib
|-
| libcurses.dylib
|-
| libdbm.dylib
|-
| libdl.dylib
|-
| libedit.2.9.dylib
|-
| libedit.2.dylib
|-
| libexslt.0.dylib
|-
| libform.5.4.dylib
|-
| libform.dylib
|-
| libgcc_s.1.dylib
|-
| libgermantok.dylib
|-
| libiconv.2.4.0.dylib
|-
| libiconv.2.dylib
|-
| libicucore.A.dylib
|-
| libicucore.dylib
|-
| libinfo.dylib
|-
| libipsec.A.dylib
|-
| libipsec.dylib
|-
| liblangid.dylib
|-
| liblapack.dylib
|-
| liblockdown.dylib
|-
| libm.dylib
|-
| libmecab_em.dylib
|-
| libmecabra.dylib
|-
| libmis.dylib
|-
| libncurses.5.4.dylib
|-
| libncurses.dylib
|-
| libobjc.A.dylib
|-
| libobjc.dylib
|-
| libpoll.dylib
|-
| libproc.dylib
|-
| libpthread.dylib
|-
| libresolv.9.dylib
|-
| libresolv.dylib
|-
| librpcsvc.dylib
|-
| libsqlite3.0.dylib
|-
| libsqlite3.dylib
|-
| libstdc++.6.0.9.dylib
|-
| libstdc++.6.dylib
|-
| libtidy.A.dylib
|-
| libutil.dylib
|-
| libutil1.0.dylib
|-
| libxml2.2.7.3.dylib
|-
| libxml2.2.dylib
|-
| libxml2.dylib
|-
| libxslt.1.dylib
|-
| libxslt.dylib
|-
| libz.1.1.3.dylib
|-
| libz.1.2.3.dylib
|-
| libz.1.dylib
|-
| libz.dylib
|-
| system/libkxld.dylib
|-
|}


== 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.
<references/>

Revision as of 08:41, 10 January 2011


Starting from iPhoneOS 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 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 dyld_decache by KennyTM~ to extract these dylibs.

Alternatively, one could also use DySlim by comex to mount the whole cache file on Mac OS X.


References

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