Documentation
¶
Index ¶
- func Extract(ipsw string) error
- func GetBinaryInApp(path string) (string, error)
- type AppInfo
- type AssetDataInfo
- type BuildIdentity
- type BuildManifest
- func (b *BuildManifest) GetBootLoaders() map[string][]string
- func (b *BuildManifest) GetBuildIdentity(device string) (*BuildIdentity, error)
- func (b *BuildManifest) GetKernelCaches() map[string][]string
- func (b *BuildManifest) GetKernelForModel(model string) []string
- func (b *BuildManifest) String() string
- type IdentityInfo
- type IdentityManifest
- type IdentityManifestInfo
- type OTAInfo
- type Plists
- type Restore
- type SystemVersion
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetBinaryInApp ¶
GetBinaryInApp returns the binary path of the given .app
Types ¶
type AppInfo ¶
type AppInfo struct {
BuildMachineOSBuild string `plist:"BuildMachineOSBuild,omitempty"`
CFBundleDevelopmentRegion string `plist:"CFBundleDevelopmentRegion,omitempty"`
CFBundleDocumentTypes []any `plist:"CFBundleDocumentTypes,omitempty"`
CFBundleExecutable string `plist:"CFBundleExecutable,omitempty"`
CFBundleIconFile string `plist:"CFBundleIconFile,omitempty"`
CFBundleIconName string `plist:"CFBundleIconName,omitempty"`
CFBundleIdentifier string `plist:"CFBundleIdentifier,omitempty"`
CFBundleInfoDictionaryVersion string `plist:"CFBundleInfoDictionaryVersion,omitempty"`
CFBundleName string `plist:"CFBundleName,omitempty"`
CFBundlePackageType string `plist:"CFBundlePackageType,omitempty"`
CFBundleShortVersionString string `plist:"CFBundleShortVersionString,omitempty"`
CFBundleSignature string `plist:"CFBundleSignature,omitempty"`
CFBundleSupportedPlatforms []string `plist:"CFBundleSupportedPlatforms,omitempty"`
CFBundleURLTypes []struct {
CFBundleTypeRole string `plist:"CFBundleTypeRole,omitempty"`
CFBundleURLIconFile string `plist:"CFBundleURLIconFile,omitempty"`
CFBundleURLName string `plist:"CFBundleURLName,omitempty"`
CFBundleURLSchemes []string `plist:"CFBundleURLSchemes,omitempty"`
} `plist:"CFBundleURLTypes,omitempty"`
CFBundleVersion string `plist:"CFBundleVersion,omitempty"`
DTCompiler string `plist:"DTCompiler,omitempty"`
DTPlatformBuild string `plist:"DTPlatformBuild,omitempty"`
DTPlatformName string `plist:"DTPlatformName,omitempty"`
DTPlatformVersion string `plist:"DTPlatformVersion,omitempty"`
DTSDKBuild string `plist:"DTSDKBuild,omitempty"`
DTSDKName string `plist:"DTSDKName,omitempty"`
DTXcode string `plist:"DTXcode,omitempty"`
DTXcodeBuild string `plist:"DTXcodeBuild,omitempty"`
LSApplicationCategoryType string `plist:"LSApplicationCategoryType,omitempty"`
LSMinimumSystemVersion string `plist:"LSMinimumSystemVersion,omitempty"`
LSUIElement bool `plist:"LSUIElement,omitempty"`
MinimumOSVersion string `plist:"MinimumOSVersion,omitempty"`
NSHumanReadableCopyright string `plist:"NSHumanReadableCopyright,omitempty"`
NSMainNibFile string `plist:"NSMainNibFile,omitempty"`
NSPrincipalClass string `plist:"NSPrincipalClass,omitempty"`
NSSupportsAutomaticGraphicsSwitching bool `plist:"NSSupportsAutomaticGraphicsSwitching,omitempty"`
NSUbiquitousDisplaySet string `plist:"NSUbiquitousDisplaySet,omitempty"`
NSUserActivityTypes []string `plist:"NSUserActivityTypes,omitempty"`
NSUserNotificationAlertStyle string `plist:"NSUserNotificationAlertStyle,omitempty"`
NSUserNotificationAlertBody string `plist:"NSUserNotificationAlertBody,omitempty"`
UTExportedTypeDeclarations []any `plist:"UTExportedTypeDeclarations,omitempty"`
}
AppInfo is the Info.plist object found in .app files https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009248-SW1
func ParseAppInfo ¶
ParseAppInfo parses the .app/Info.plist
type AssetDataInfo ¶
type AssetDataInfo struct {
ActualMinimumSystemPartition int `plist:"ActualMinimumSystemPartition,omitempty" json:"actual_minimum_system_partition,omitempty"`
Build string `plist:"Build,omitempty" json:"build,omitempty"`
DeviceClass string `plist:"DeviceClass,omitempty" json:"device_class,omitempty"`
HardwareModel string `plist:"HardwareModel,omitempty" json:"hardware_model,omitempty"`
MinimumSystemPartition int `plist:"MinimumSystemPartition,omitempty" json:"minimum_system_partition,omitempty"`
PackageVersion string `plist:"PackageVersion,omitempty" json:"package_version,omitempty"`
ProductType string `plist:"ProductType,omitempty" json:"product_type,omitempty"`
ProductVersion string `plist:"ProductVersion,omitempty" json:"product_version,omitempty"`
RSEPDigest []byte `plist:"RSEPDigest,omitempty" json:"rsep_digest,omitempty"`
RSEPTBMDigests []byte `plist:"RSEPTBMDigests,omitempty" json:"rseptbm_digests,omitempty"`
RequiredSpace int `plist:"RequiredSpace,omitempty" json:"required_space,omitempty"`
ReserveFileAware bool `plist:"ReserveFileAware,omitempty" json:"reserve_file_aware,omitempty"`
SEPDigest []byte `plist:"SEPDigest,omitempty" json:"sep_digest,omitempty"`
SEPTBMDigests []byte `plist:"SEPTBMDigests,omitempty" json:"septbm_digests,omitempty"`
SizeArchiveRoot int `plist:"SizeArchiveRoot,omitempty" json:"size_archive_root,omitempty"`
SizePatchedBinaries int `plist:"SizePatchedBinaries,omitempty" json:"size_patched_binaries,omitempty"`
SizePatchedBinariesSnapshot int `plist:"SizePatchedBinaries-Snapshot,omitempty" json:"size_patched_binaries_snapshot,omitempty"`
SystemPartitionPadding map[string]int `plist:"SystemPartitionPadding,omitempty" json:"system_partition_padding,omitempty"`
SystemUpdatePathMap map[string]string `plist:"SystemUpdatePathMap,omitempty" json:"system_update_path_map,omitempty"`
SystemVolumeSealingOverhead int `plist:"SystemVolumeSealingOverhead,omitempty" json:"system_volume_sealing_overhead,omitempty"`
TargetUpdate string `plist:"TargetUpdate,omitempty" json:"target_update,omitempty"`
}
AssetDataInfo AssetData/Info.plist object found in OTAs
func ParseAssetDataInfoPlist ¶
func ParseAssetDataInfoPlist(data []byte) (*AssetDataInfo, error)
ParseBuildManifest parses the AssetData/Info.plist file from an OTA
type BuildIdentity ¶
type BuildIdentity struct {
ApOSLongVersion string `plist:"Ap,OSLongVersion,omitempty" json:"ap_os_long_version,omitempty"`
ApBoardID string `plist:"ApBoardID,omitempty" json:"ap_board_id,omitempty"`
ApChipID string `plist:"ApChipID,omitempty" json:"ap_chip_id,omitempty"`
ApSecurityDomain string `plist:"ApSecurityDomain,omitempty" json:"ap_security_domain,omitempty"`
ApProductType string `plist:"Ap,ProductType,omitempty" json:"ap_product_type,omitempty"`
ApProductMarketingVersion string `plist:"Ap,ProductMarketingVersion,omitempty" json:"product_marketing_version,omitempty"`
ApSDKPlatform string `plist:"Ap,SDKPlatform,omitempty" json:"ap_sdk_platform,omitempty"`
ApTarget string `plist:"Ap,Target,omitempty" json:"ap_target,omitempty"`
ApTargetType string `plist:"Ap,TargetType,omitempty" json:"ap_target_type,omitempty"`
BbActivationManifestKeyHash []byte `plist:"BbActivationManifestKeyHash,omitempty" json:"bb_activation_manifest_key_hash,omitempty"`
BbChipID string `plist:"BbChipID,omitempty" json:"bb_chip_id,omitempty"`
BbGoldCertId string `plist:"BbGoldCertId,omitempty" json:"bb_gold_cert_id,omitempty"`
BbSkeyId []byte `plist:"BbSkeyId,omitempty" json:"bb_skey_id,omitempty"`
BbFDRSecurityKeyHash []byte `plist:"BbFDRSecurityKeyHash,omitempty" json:"bb_fdr_security_key_hash,omitempty"`
BbProvisioningManifestKeyHash []byte `plist:"BbProvisioningManifestKeyHash,omitempty" json:"bb_provisioning_manifest_key_hash,omitempty"`
BbCalibrationManifestKeyHash []byte `plist:"BbCalibrationManifestKeyHash,omitempty" json:"bb_calibration_manifest_key_hash,omitempty"`
BbFactoryActivationManifestKeyHash []byte `plist:"BbFactoryActivationManifestKeyHash,omitempty" json:"bb_factory_activation_manifest_key_hash,omitempty"`
Info IdentityInfo `plist:"Info,omitempty" json:"info"`
Manifest map[string]IdentityManifest `plist:"Manifest,omitempty" json:"manifest,omitempty"`
PearlCertificationRootPub []byte `plist:"PearlCertificationRootPub,omitempty" json:"pearl_certification_root_pub,omitempty"`
UniqueBuildID []byte `plist:"UniqueBuildID,omitempty" json:"unique_build_id,omitempty"`
NeRDEpoch uint64 `plist:"NeRDEpoch,omitempty" json:"nerd_epoch,omitempty"`
PermitNeRDPivot []byte `plist:"PermitNeRDPivot,omitempty" json:"permit_nerd_pivot,omitempty"`
ApSikaFuse uint64 `plist:"Ap,SikaFuse,omitempty" json:"ap_sika_fuse,omitempty"`
}
func (BuildIdentity) String ¶
func (i BuildIdentity) String() string
type BuildManifest ¶
type BuildManifest struct {
BuildIdentities []BuildIdentity `plist:"BuildIdentities,omitempty" json:"build_identities,omitempty"`
ManifestVersion int `plist:"ManifestVersion,omitempty" json:"manifest_version,omitempty"`
ProductBuildVersion string `plist:"ProductBuildVersion,omitempty" json:"product_build_version,omitempty"`
ProductVersion string `plist:"ProductVersion,omitempty" json:"product_version,omitempty"`
SupportedProductTypes []string `plist:"SupportedProductTypes,omitempty" json:"supported_product_types,omitempty"`
}
BuildManifest is the BuildManifest.plist object found in IPSWs/OTAs
func ParseBuildManifest ¶
func ParseBuildManifest(data []byte) (*BuildManifest, error)
ParseBuildManifest parses the BuildManifest.plist
func (*BuildManifest) GetBootLoaders ¶
func (b *BuildManifest) GetBootLoaders() map[string][]string
func (*BuildManifest) GetBuildIdentity ¶
func (b *BuildManifest) GetBuildIdentity(device string) (*BuildIdentity, error)
func (*BuildManifest) GetKernelCaches ¶
func (b *BuildManifest) GetKernelCaches() map[string][]string
func (*BuildManifest) GetKernelForModel ¶
func (b *BuildManifest) GetKernelForModel(model string) []string
func (*BuildManifest) String ¶
func (b *BuildManifest) String() string
type IdentityInfo ¶
type IdentityInfo struct {
BuildNumber string `json:"build_number,omitempty"`
CodeName string `plist:"BuildTrain,omitempty" json:"code_name,omitempty"`
DeviceClass string `json:"device_class,omitempty"`
FDRSupport bool `json:"fdr_support,omitempty"`
MinimumSystemPartition int `json:"minimum_system_partition,omitempty"`
MobileDeviceMinVersion string `json:"mobile_device_min_version,omitempty"`
OSVarContentSize int `json:"os_var_content_size,omitempty"`
RestoreBehavior string `json:"restore_behavior,omitempty"`
SystemPartitionPadding map[string]int `json:"system_partition_padding,omitempty"`
Variant string `json:"variant,omitempty"`
VariantContents map[string]string `json:"variant_contents,omitempty"`
ApTimestamp int `plist:"Ap,Timestamp,omitempty" json:"ap_timestamp,omitempty"`
}
func (IdentityInfo) String ¶
func (i IdentityInfo) String() string
type IdentityManifest ¶
type IdentityManifest struct {
Digest []byte `plist:"Digest,omitempty" json:"digest,omitempty" mapstructure:"Digest,omitempty"`
DigestListSize *int `plist:"DigestListSize,omitempty" json:"digest_list_size,omitempty" mapstructure:"DigestListSize,omitempty"`
FabRevision *int `plist:"FabRevision,omitempty" json:"fab_revision,omitempty" mapstructure:"FabRevision,omitempty"`
Name *string `plist:"Name,omitempty" json:"name,omitempty" mapstructure:"Name,omitempty"`
BuildString *string `plist:"BuildString,omitempty" json:"build_string,omitempty" mapstructure:"BuildString,omitempty"`
Info map[string]any `plist:"Info,omitempty" json:"info,omitempty" mapstructure:"Info,omitempty"`
EPRO *bool `plist:"EPRO,omitempty" json:"epro,omitempty" mapstructure:"EPRO,omitempty"`
ESEC *bool `plist:"ESEC,omitempty" json:"esec,omitempty" mapstructure:"ESEC,omitempty"`
Trusted *bool `plist:"Trusted,omitempty" json:"trusted,omitempty" mapstructure:"Trusted,omitempty"`
MemoryMap *[]byte `plist:"MemoryMap,omitempty" json:"memory_map,omitempty" mapstructure:"MemoryMap,omitempty"`
ObjectPayloadPropertyDigest *[]byte `` /* 146-byte string literal not displayed */
ProductionUpdatePayloadHash *[]byte `` /* 146-byte string literal not displayed */
DevelopmentUpdatePayloadHash *[]byte `` /* 149-byte string literal not displayed */
RawDataDigest *[]byte `plist:"RawDataDigest,omitempty" json:"raw_data_digest,omitempty" mapstructure:"RawDataDigest,omitempty"`
TBMDigests *[]byte `plist:"TBMDigests,omitempty" json:"tbm_digests,omitempty" mapstructure:"TBMDigests,omitempty"`
}
func (IdentityManifest) MarshalMap ¶
func (m IdentityManifest) MarshalMap() map[string]any
MarshalMap converts IdentityManifest to a map suitable for plist marshaling by dereferencing all pointer values
func (IdentityManifest) String ¶
func (m IdentityManifest) String() string
type IdentityManifestInfo ¶
type IdentityManifestInfo struct {
IsFTAB bool `json:"is_ftab,omitempty" mapstructure:"IsFTAB,omitempty"`
IsFUDFirmware bool `plist:"IsFUDFirmware,omitempty" json:"is_fud_firmware,omitempty" mapstructure:"IsFUDFirmware,omitempty"`
IsFirmwarePayload bool `plist:"IsFirmwarePayload,omitempty" json:"is_firmware_payload,omitempty" mapstructure:"IsFirmwarePayload,omitempty"`
IsLoadedByiBoot bool `json:"is_loaded_byi_boot,omitempty" mapstructure:"IsLoadedByiBoot,omitempty"`
IsLoadedByiBootStage1 bool `json:"is_loaded_byi_boot_stage_1,omitempty" mapstructure:"IsLoadedByiBootStage1,omitempty"`
IsiBootEANFirmware bool `json:"isi_boot_ean_firmware,omitempty" mapstructure:"IsiBootEANFirmware,omitempty"`
IsiBootNonEssentialFirmware bool `json:"isi_boot_non_essential_firmware,omitempty" mapstructure:"IsiBootNonEssentialFirmware,omitempty"`
Path string `plist:"Path" json:"path,omitempty" mapstructure:"Path,omitempty"`
Personalize bool `json:"personalize,omitempty" mapstructure:"Personalize,omitempty"`
RestoreRequestRules []any `json:"restore_request_rules,omitempty" mapstructure:"RestoreRequestRules,omitempty"`
}
type OTAInfo ¶
type OTAInfo struct {
CFBundleIdentifier string `plist:"CFBundleIdentifier,omitempty" json:"cf_bundle_identifier,omitempty"`
CFBundleInfoDictionaryVersion string `plist:"CFBundleInfoDictionaryVersion,omitempty" json:"cf_bundle_info_dictionary_version,omitempty"`
CFBundleName string `plist:"CFBundleName,omitempty" json:"cf_bundle_name,omitempty"`
CFBundleShortVersionString string `plist:"CFBundleShortVersionString,omitempty" json:"cf_bundle_short_version_string,omitempty"`
CFBundleVersion string `plist:"CFBundleVersion,omitempty" json:"cf_bundle_version,omitempty"`
MobileAssetProperties types.Asset `plist:"MobileAssetProperties,omitempty" json:"mobile_asset_properties"`
}
OTAInfo Info.plist object found in OTAs
func ParseOTAInfo ¶
ParseOTAInfo parses the Info.plist file from an OTA
type Plists ¶
type Plists struct {
Type string `json:"type,omitempty"`
*BuildManifest `json:"build_manifest,omitempty"`
*Restore `json:"restore,omitempty"`
*AssetDataInfo `json:"asset_data_info,omitempty"`
*OTAInfo `json:"ota_info,omitempty"`
*SystemVersion `json:"system_version,omitempty"`
}
Plists IPSW/OTA plists object
func ParseZipFiles ¶
ParseZipFiles parses plists in remote ipsw zip
func (*Plists) GetDeviceForBoardConfig ¶
func (*Plists) GetKernelType ¶
type Restore ¶
type Restore struct {
DeviceClass string `plist:"DeviceClass,omitempty"`
FirmwareDirectory string `plist:"FirmwareDirectory,omitempty"`
KernelCachesByPlatform map[string]any `plist:"KernelCachesByPlatform,omitempty"`
DeviceMap []restoreDeviceMap `plist:"DeviceMap,omitempty"`
ProductBuildVersion string `plist:"ProductBuildVersion,omitempty"`
ProductType string `plist:"ProductType,omitempty"`
ProductVersion string `plist:"ProductVersion,omitempty"`
RamDisksByPlatform map[string]any `plist:"RamDisksByPlatform,omitempty"`
RestoreKernelCaches map[string]any `plist:"RestoreKernelCaches,omitempty"`
RestoreRamDisks map[string]any `plist:"RestoreRamDisks,omitempty"`
SupportedProductTypeIDs map[string][]int `plist:"SupportedProductTypeIDs,omitempty"`
SupportedProductTypes []string `plist:"SupportedProductTypes,omitempty"`
SystemRestoreImageFileSystems map[string]string `plist:"SystemRestoreImageFileSystems,omitempty"`
SystemRestoreImages map[string]string `plist:"SystemRestoreImages,omitempty"`
}
Restore is the Restore.plist object found in IPSWs/OTAs
func ParseRestore ¶
ParseRestore parses the Restore.plist
type SystemVersion ¶
type SystemVersion struct {
BuildID string `json:"build_id,omitempty"`
ProductBuildVersion string `json:"product_build_version,omitempty"`
ProductCopyright string `json:"product_copyright,omitempty"`
ProductName string `json:"product_name,omitempty"`
ProductVersion string `json:"product_version,omitempty"`
ReleaseType string `json:"release_type,omitempty"`
SystemImageID string `json:"system_image_id,omitempty"`
}
SystemVersion is the SystemVersion.plist struct
func ParseSystemVersion ¶
func ParseSystemVersion(data []byte) (*SystemVersion, error)
ParseSystemVersion parses the SystemVersion.plist
func (*SystemVersion) String ¶
func (sv *SystemVersion) String() string