收集了不少Entitlement,当然也肯定有遗漏。有的就是key的字面意思,就不多做解释。
不过有的虽然字面意思好理解,不过具体的用处不太清楚,就写的Unknown use。
在替换entitlement的时候,只换上自己所需要的权限就行。
原文在此。
<key>CanInheritApplicationStateFromOtherProcesses</key>
<true/>
Unknown use.
<key>DataProtectionClass</key>
<string>NSFileProtectionComplete</string>
Unknown use.
<key>SBStarkCapable</key>
<true/>
Unknown use.
<key>allow-obliterate-device</key>
<true/>
<key>aps-connection-initiate</key>
<true/>
Unknown use.
<key>backupd-connection-initiate</key>
<true/>
<key>checklessPersistentURLTranslation</key>
<true/>
<key>com.apple.AutoWake-write-access</key>
<true/>
Unknown use.
<key>com.apple.CommCenter.fine-grained</key>
<array>
<string>spi</string>
<string>phone</string>
<string>identity</string>
<string>sms</string>
<string>data-usage</string>
<string>data-allowed</string>
<string>data-allowed-write</string>
</array>
<key>com.apple.CoreRoutine.LocationOfInterest</key>
<true/>
<key>com.apple.QuartzCore.displayable-context</key>
<true/>
<key>com.apple.QuartzCore.global-capture</key>
<true/>
<key>com.apple.QuartzCore.secure-mode</key>
<true/>
有时候截屏需要签上以上这三个QuartzCore。
<key>com.apple.SystemConfiguration.SCDynamicStore-write-access</key>
<true/>
<key>com.apple.SystemConfiguration.SCPreferences-write-access</key>
<array>
<string>com.apple.radios.plist</string>
</array>
应该是写Wi-Fi相关的配置时需要签上。
<key>com.apple.UIKit.vends-view-services</key>
<true/>
Unknown use.
<key>com.apple.accounts.appleaccount.fullaccess</key>
<true/>
<key>com.apple.accounts.appleidauthentication.defaultaccess</key>
<true/>
<key>com.apple.accounts.facebook.defaultaccess</key>
<true/>
<key>com.apple.assistant.contextprovider</key>
<true/>
<key>com.apple.avfoundation.allow-still-image-capture-shutter-sound-manipulation</key>
<true/>
<key>com.apple.backboard.client</key>
<true/>
<key>com.apple.backboardd.launchapplications</key>
<true/>
<key>com.apple.bulletinboard.serverconduit</key>
<true/>
<key>com.apple.bulletinboard.utilities</key>
<true/>
Unknown use.
<key>com.apple.cards.all-access</key>
<true/>
Unknown use.
<key>com.apple.ci</key>
<true/>
Unknown use.
<key>com.apple.coreaudio.allow-amr-decode</key>
<true/>
<key>com.apple.coreaudio.allow-opus-codec</key>
<true/>
<key>com.apple.coreduetd.allow</key>
<true/>
<key>com.apple.coremedia.allow-mpeg4streaming</key>
<true/>
<key>com.apple.coremedia.allow-preview-encrypted-tone-playback</key>
<true/>
<key>com.apple.coremedia.allow-protected-content-playback</key>
<true/>
<key>com.apple.coretelephony.Identity.get</key>
<true/>
<key>com.apple.developer.extension-host.photo-editing</key>
<true/>
<key>com.apple.developer.game-center</key>
<array>
<string>Account</string>
<string>Scores</string>
<string>Achievements</string>
<string>Challenges</string>
<string>Multiplayer</string>
<string>TurnBasedMultiplayer</string>
</array>
<key>com.apple.developer.healthkit</key>
<true/>
访问Health数据
<key>com.apple.developer.icloud-container-environment</key>
<string>Development</string>
<key>com.apple.developer.pass-type-identifiers</key>
<array>
<string>*.pass.com.apple.itunes.storecredit</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>com.apple.shoebox</string>
</array>
<key>com.apple.excludes-extensions</key>
<true/>
<key>com.apple.icloud.findmydeviced.access</key>
<true/>
<key>com.apple.imagent.av</key>
<true/>
<key>com.apple.ios.StoreKit.compose-review</key>
<true/>
<key>com.apple.itunesstored.private</key>
<true/>
<key>com.apple.keystore.device</key>
<true/>
<key>com.apple.keystore.device.verify</key>
<true/>
<key>com.apple.launchservices.receivereferrerrurl</key>
<true/>
<key>com.apple.locationd.effective_bundle</key>
<true/>
<key>com.apple.locationd.prompt_behavior</key>
<true/>
<key>com.apple.locationd.usage_oracle</key>
<true/>
Unknown use.
<key>com.apple.mediastream.mstreamd-access</key>
<true/>
<key>com.apple.messages.supportsattachments</key>
<true/>
<key>com.apple.mobilemail.mailservices</key>
<true/>
<key>com.apple.nfcd.ce</key>
<true/>
Unknown use.
<key>com.apple.nfcd.info</key>
<true/>
Unknown use.
<key>com.apple.notificationcenter.widgetcontrollerhascontent</key>
<true/>
<key>com.apple.photos.bourgeoisie</key>
<true/>
<key>com.apple.private.CoreAuthentication.CallerPID</key>
<true/>
<key>com.apple.private.CoreAuthentication.SPI</key>
<true/>
<key>com.apple.private.MobileGestalt.AllowedProtectedKeys</key>
<array>
<string>EthernetMacAddress</string>
<string>WifiAddressData</string>
<string>WifiAddress</string>
<string>UniqueDeviceID</string>
</array>
<key>com.apple.private.accounts.allaccounts</key>
<true/>
<key>com.apple.private.accounts.authdialoghost</key>
<true/>
<key>com.apple.private.accounts.bypassguestmoderestrictions</key>
<true/>
<key>com.apple.private.accounts.customaccesssinfo</key>
<true/>
<key>com.apple.private.allow-explicit-graphics-priority</key>
<true/>
<key>com.apple.private.appleaccount.app-hidden-from-icloud-settings</key>
<true/>
<key>com.apple.private.assetsd.nebulad.access</key>
<string>camera</string>
<key>com.apple.private.bmk.allow</key>
<true/>
<key>com.apple.private.calendar.allow-suggestions</key>
<true/>
<key>com.apple.private.communicationsfilter</key>
<true/>
<key>com.apple.private.corerecents</key>
<true/>
<key>com.apple.private.game-center</key>
<array>
<string>Account</string>
<string>Authenticate</string>
<string>Profile</string>
<string>Friends</string>
<string>Games</string>
<string>Scores</string>
<string>Achievements</string>
<string>Challenges</string>
<string>Multiplayer</string>
<string>TurnBasedMultiplayer</string>
<string>GameStats</string>
</array>
<key>com.apple.private.healthkit</key>
<true/>
<key>com.apple.private.healthkit.authorization_bypass</key>
<true/>
<key>com.apple.private.healthkit.authorization_manager</key>
<true/>
<key>com.apple.private.healthkit.medicaliddata</key>
<true/>
<key>com.apple.private.healthkit.preferred_source</key>
<true/>
<key>com.apple.private.iad.background-client</key>
<true/>
<key>com.apple.private.iad.privileged-client</key>
<true/>
<key>com.apple.private.icfcallserver</key>
<true/>
<key>com.apple.private.ids.idquery-cache</key>
<true/>
Unknown use.
<key>com.apple.private.ids.registration-reset</key>
<true/>
<key>com.apple.private.imavcore.imavagent</key>
<true/>
<key>com.apple.private.imcore.imremoteurlconnection</key>
<true/>
<key>com.apple.private.lockdown.finegrained-get</key>
<array>
<string>NULL/ActivationPrivateKey</string>
<string>NULL/DeviceCertificate</string>
</array>
<key>com.apple.private.mobileinstall.allowedSPI</key>
<array>
<string>CheckCapabilitiesMatch</string>
<string>InstallForLaunchServices</string>
<string>UninstallForLaunchServices</string>
</array>
<key>com.apple.private.network.socket-delegate</key>
<true/>
<key>com.apple.private.security.container-required</key>
<true/>
<key>com.apple.private.social.facebook.like</key>
<true/>
<key>com.apple.private.suggestions</key>
<true/>
<key>com.apple.private.tcc.allow</key>
<array>
<string>kTCCServiceAddressBook</string>
<string>kTCCServiceCamera</string>
<string>kTCCServiceMicrophone</string>
<string>kTCCServiceReminders</string>
<string>kTCCServicePhotos</string>
<string>kTCCServiceCalendar</string>
</array>
<key>com.apple.private.tcc.allow.overridable</key>
<array>
<string>kTCCServicePhotos</string>
<string>kTCCServiceAddressBook</string>
<string>kTCCServiceCalendar</string>
</array>
<key>com.apple.private.xpc.launchd.app-server</key>
<true/>
<key>com.apple.security.exception.files.absolute-path.read-write</key>
<array>
<string>/PATH/TO/THE/FILE/YOU/WANT/TO/READ/WRITE</string>
</array>
<key>com.apple.security.exception.iokit-user-client-class</key>
<array>
<string>RootDomainUserClient</string>
</array>
<key>com.apple.security.exception.mach-lookup.global-name</key>
<array>
<string>com.apple.assetsd.nebulad</string>
<string>com.apple.accountsd.oopa</string>
<string>com.apple.telephonyutilities.callservicesdaemon</string>
<string>com.apple.routined.registration</string>
</array>
<key>com.apple.seld.cm</key>
<true/>
<key>com.apple.sh</key>
<true/>
<key>com.apple.springboard.activateRemoteAlert</key>
<true/>
<key>com.apple.springboard.activateawayviewplugins</key>
<true/>
<key>com.apple.springboard.allowallcallurls</key>
<true/>
<key>com.apple.springboard.appbackgroundstyle</key>
<string>YES</string>
<key>com.apple.springboard.debugapplications</key>
<true/>
<key>com.apple.springboard.opensensitiveurl</key>
<true/>
<key>com.apple.springboard.openurlinbackground</key>
<true/>
<key>com.apple.springboard.openurlswhenlocked</key>
<true/>
<key>com.apple.springboard.stark.activateRemoteAlert</key>
<true/>
<key>com.apple.videoconference.allow-conferencing</key>
<true/>
<key>com.apple.visualvoicemail.client</key>
<true/>
<key>com.apple.wifi.manager-access</key>
<true/>
<key>dynamic-codesigning</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>apple</string>
<string>com.apple.airplay</string>
<string>com.apple.youtube.credentials</string>
<string>com.apple.PassbookUIService</string>
<string>com.apple.videouploadplugins.credentials</string>
</array>
<key>platform-application</key>
<true/>
<key>proc_info-allow</key>
<true/>
<key>run-unsigned-code</key>
<true/>
<key>seatbelt-profiles</key>
<array>
<string>MobileSlideShow</string>
<string>MobileCal</string>
<string>MailCompositionService</string>
</array>
<key>task_for_pid-allow</key>
<true/>
不过有的虽然字面意思好理解,不过具体的用处不太清楚,就写的Unknown use。
在替换entitlement的时候,只换上自己所需要的权限就行。
原文在此。
<key>CanInheritApplicationStateFromOtherProcesses</key>
<true/>
Unknown use.
<key>DataProtectionClass</key>
<string>NSFileProtectionComplete</string>
Unknown use.
<key>SBStarkCapable</key>
<true/>
Unknown use.
<key>allow-obliterate-device</key>
<true/>
<key>aps-connection-initiate</key>
<true/>
Unknown use.
<key>backupd-connection-initiate</key>
<true/>
<key>checklessPersistentURLTranslation</key>
<true/>
<key>com.apple.AutoWake-write-access</key>
<true/>
Unknown use.
<key>com.apple.CommCenter.fine-grained</key>
<array>
<string>spi</string>
<string>phone</string>
<string>identity</string>
<string>sms</string>
<string>data-usage</string>
<string>data-allowed</string>
<string>data-allowed-write</string>
</array>
<key>com.apple.CoreRoutine.LocationOfInterest</key>
<true/>
<key>com.apple.QuartzCore.displayable-context</key>
<true/>
<key>com.apple.QuartzCore.global-capture</key>
<true/>
<key>com.apple.QuartzCore.secure-mode</key>
<true/>
有时候截屏需要签上以上这三个QuartzCore。
<key>com.apple.SystemConfiguration.SCDynamicStore-write-access</key>
<true/>
<key>com.apple.SystemConfiguration.SCPreferences-write-access</key>
<array>
<string>com.apple.radios.plist</string>
</array>
应该是写Wi-Fi相关的配置时需要签上。
<key>com.apple.UIKit.vends-view-services</key>
<true/>
Unknown use.
<key>com.apple.accounts.appleaccount.fullaccess</key>
<true/>
<key>com.apple.accounts.appleidauthentication.defaultaccess</key>
<true/>
<key>com.apple.accounts.facebook.defaultaccess</key>
<true/>
<key>com.apple.assistant.contextprovider</key>
<true/>
<key>com.apple.avfoundation.allow-still-image-capture-shutter-sound-manipulation</key>
<true/>
<key>com.apple.backboard.client</key>
<true/>
<key>com.apple.backboardd.launchapplications</key>
<true/>
<key>com.apple.bulletinboard.serverconduit</key>
<true/>
<key>com.apple.bulletinboard.utilities</key>
<true/>
Unknown use.
<key>com.apple.cards.all-access</key>
<true/>
Unknown use.
<key>com.apple.ci</key>
<true/>
Unknown use.
<key>com.apple.coreaudio.allow-amr-decode</key>
<true/>
<key>com.apple.coreaudio.allow-opus-codec</key>
<true/>
<key>com.apple.coreduetd.allow</key>
<true/>
<key>com.apple.coremedia.allow-mpeg4streaming</key>
<true/>
<key>com.apple.coremedia.allow-preview-encrypted-tone-playback</key>
<true/>
<key>com.apple.coremedia.allow-protected-content-playback</key>
<true/>
<key>com.apple.coretelephony.Identity.get</key>
<true/>
<key>com.apple.developer.extension-host.photo-editing</key>
<true/>
<key>com.apple.developer.game-center</key>
<array>
<string>Account</string>
<string>Scores</string>
<string>Achievements</string>
<string>Challenges</string>
<string>Multiplayer</string>
<string>TurnBasedMultiplayer</string>
</array>
<key>com.apple.developer.healthkit</key>
<true/>
访问Health数据
<key>com.apple.developer.icloud-container-environment</key>
<string>Development</string>
<key>com.apple.developer.pass-type-identifiers</key>
<array>
<string>*.pass.com.apple.itunes.storecredit</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>com.apple.shoebox</string>
</array>
<key>com.apple.excludes-extensions</key>
<true/>
<key>com.apple.icloud.findmydeviced.access</key>
<true/>
<key>com.apple.imagent.av</key>
<true/>
<key>com.apple.ios.StoreKit.compose-review</key>
<true/>
<key>com.apple.itunesstored.private</key>
<true/>
<key>com.apple.keystore.device</key>
<true/>
<key>com.apple.keystore.device.verify</key>
<true/>
<key>com.apple.launchservices.receivereferrerrurl</key>
<true/>
<key>com.apple.locationd.effective_bundle</key>
<true/>
<key>com.apple.locationd.prompt_behavior</key>
<true/>
<key>com.apple.locationd.usage_oracle</key>
<true/>
Unknown use.
<key>com.apple.mediastream.mstreamd-access</key>
<true/>
<key>com.apple.messages.supportsattachments</key>
<true/>
<key>com.apple.mobilemail.mailservices</key>
<true/>
<key>com.apple.nfcd.ce</key>
<true/>
Unknown use.
<key>com.apple.nfcd.info</key>
<true/>
Unknown use.
<key>com.apple.notificationcenter.widgetcontrollerhascontent</key>
<true/>
<key>com.apple.photos.bourgeoisie</key>
<true/>
<key>com.apple.private.CoreAuthentication.CallerPID</key>
<true/>
<key>com.apple.private.CoreAuthentication.SPI</key>
<true/>
<key>com.apple.private.MobileGestalt.AllowedProtectedKeys</key>
<array>
<string>EthernetMacAddress</string>
<string>WifiAddressData</string>
<string>WifiAddress</string>
<string>UniqueDeviceID</string>
</array>
<key>com.apple.private.accounts.allaccounts</key>
<true/>
<key>com.apple.private.accounts.authdialoghost</key>
<true/>
<key>com.apple.private.accounts.bypassguestmoderestrictions</key>
<true/>
<key>com.apple.private.accounts.customaccesssinfo</key>
<true/>
<key>com.apple.private.allow-explicit-graphics-priority</key>
<true/>
<key>com.apple.private.appleaccount.app-hidden-from-icloud-settings</key>
<true/>
<key>com.apple.private.assetsd.nebulad.access</key>
<string>camera</string>
<key>com.apple.private.bmk.allow</key>
<true/>
<key>com.apple.private.calendar.allow-suggestions</key>
<true/>
<key>com.apple.private.communicationsfilter</key>
<true/>
<key>com.apple.private.corerecents</key>
<true/>
<key>com.apple.private.game-center</key>
<array>
<string>Account</string>
<string>Authenticate</string>
<string>Profile</string>
<string>Friends</string>
<string>Games</string>
<string>Scores</string>
<string>Achievements</string>
<string>Challenges</string>
<string>Multiplayer</string>
<string>TurnBasedMultiplayer</string>
<string>GameStats</string>
</array>
<key>com.apple.private.healthkit</key>
<true/>
<key>com.apple.private.healthkit.authorization_bypass</key>
<true/>
<key>com.apple.private.healthkit.authorization_manager</key>
<true/>
<key>com.apple.private.healthkit.medicaliddata</key>
<true/>
<key>com.apple.private.healthkit.preferred_source</key>
<true/>
<key>com.apple.private.iad.background-client</key>
<true/>
<key>com.apple.private.iad.privileged-client</key>
<true/>
<key>com.apple.private.icfcallserver</key>
<true/>
<key>com.apple.private.ids.idquery-cache</key>
<true/>
Unknown use.
<key>com.apple.private.ids.registration-reset</key>
<true/>
<key>com.apple.private.imavcore.imavagent</key>
<true/>
<key>com.apple.private.imcore.imremoteurlconnection</key>
<true/>
<key>com.apple.private.lockdown.finegrained-get</key>
<array>
<string>NULL/ActivationPrivateKey</string>
<string>NULL/DeviceCertificate</string>
</array>
<key>com.apple.private.mobileinstall.allowedSPI</key>
<array>
<string>CheckCapabilitiesMatch</string>
<string>InstallForLaunchServices</string>
<string>UninstallForLaunchServices</string>
</array>
<key>com.apple.private.network.socket-delegate</key>
<true/>
<key>com.apple.private.security.container-required</key>
<true/>
<key>com.apple.private.social.facebook.like</key>
<true/>
<key>com.apple.private.suggestions</key>
<true/>
<key>com.apple.private.tcc.allow</key>
<array>
<string>kTCCServiceAddressBook</string>
<string>kTCCServiceCamera</string>
<string>kTCCServiceMicrophone</string>
<string>kTCCServiceReminders</string>
<string>kTCCServicePhotos</string>
<string>kTCCServiceCalendar</string>
</array>
<key>com.apple.private.tcc.allow.overridable</key>
<array>
<string>kTCCServicePhotos</string>
<string>kTCCServiceAddressBook</string>
<string>kTCCServiceCalendar</string>
</array>
<key>com.apple.private.xpc.launchd.app-server</key>
<true/>
<key>com.apple.security.exception.files.absolute-path.read-write</key>
<array>
<string>/PATH/TO/THE/FILE/YOU/WANT/TO/READ/WRITE</string>
</array>
<key>com.apple.security.exception.iokit-user-client-class</key>
<array>
<string>RootDomainUserClient</string>
</array>
<key>com.apple.security.exception.mach-lookup.global-name</key>
<array>
<string>com.apple.assetsd.nebulad</string>
<string>com.apple.accountsd.oopa</string>
<string>com.apple.telephonyutilities.callservicesdaemon</string>
<string>com.apple.routined.registration</string>
</array>
<key>com.apple.seld.cm</key>
<true/>
<key>com.apple.sh</key>
<true/>
<key>com.apple.springboard.activateRemoteAlert</key>
<true/>
<key>com.apple.springboard.activateawayviewplugins</key>
<true/>
<key>com.apple.springboard.allowallcallurls</key>
<true/>
<key>com.apple.springboard.appbackgroundstyle</key>
<string>YES</string>
<key>com.apple.springboard.debugapplications</key>
<true/>
<key>com.apple.springboard.opensensitiveurl</key>
<true/>
<key>com.apple.springboard.openurlinbackground</key>
<true/>
<key>com.apple.springboard.openurlswhenlocked</key>
<true/>
<key>com.apple.springboard.stark.activateRemoteAlert</key>
<true/>
<key>com.apple.videoconference.allow-conferencing</key>
<true/>
<key>com.apple.visualvoicemail.client</key>
<true/>
<key>com.apple.wifi.manager-access</key>
<true/>
<key>dynamic-codesigning</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>apple</string>
<string>com.apple.airplay</string>
<string>com.apple.youtube.credentials</string>
<string>com.apple.PassbookUIService</string>
<string>com.apple.videouploadplugins.credentials</string>
</array>
<key>platform-application</key>
<true/>
<key>proc_info-allow</key>
<true/>
<key>run-unsigned-code</key>
<true/>
<key>seatbelt-profiles</key>
<array>
<string>MobileSlideShow</string>
<string>MobileCal</string>
<string>MailCompositionService</string>
</array>
<key>task_for_pid-allow</key>
<true/>
转自:http://blog.0xbbc.com/2014/12/ios-entitlement分析/