Documentation ¶
Index ¶
- Constants
- Variables
- func DownloadFile(resource, file string, w io.Writer) error
- func FindElement(data *bufio.Reader, signature ElementType, out interface{}) error
- func KBag(data *bufio.Reader) (string, error)
- func NewiTunesVersionMaster(url string) (*iTunesVersionMaster, error)
- type BuildIdentity
- type BuildIdentityInfo
- type BuildIdentityManifest
- type BuildInformation
- type BuildManifest
- type BuildNumber
- type Device
- type ElementType
- type HTTPClient
- type IPSW
- func (i IPSW) Baseband() (string, error)
- func (i *IPSW) BuildManifest() (*BuildManifest, error)
- func (i *IPSW) Headers() (http.Header, error)
- func (i *IPSW) PlistFromZip(name string, out interface{}) error
- func (i *IPSW) RawManifest() (map[string]interface{}, error)
- func (i *IPSW) RestorePlist() (*Restore, error)
- type Identifier
- type Image
- type ImageContainer
- type ImageElementHeader
- type ImageHeader
- type ImageKbagElement
- type IndividualBuild
- type Manifest
- type ManifestInfo
- type OTABuildIdentity
- type OTABuildIdentityInfo
- type OTABuildManifest
- type OTAFirmware
- type OTAXML
- type OTAZip
- type Restore
- type SHSHDevice
- type SHSHJSON
- type SigningStatus
- type VersionWrapper
Constants ¶
View Source
const ( BuildManifestFilename = "BuildManifest.plist" RestoreFilename = "Restore.plist" )
View Source
const ( NorContainer ImageContainer = 0x696D6733 // img3 Img3Container ImageContainer = 0x496D6733 // Img3 X8900Container ImageContainer = 0x30303938 // 8900 Img2CVontainer ImageContainer = 0x494D4732 // IMG2 DataElement ElementType = 0x44415441 // DATA TypeElement ElementType = 0x54595045 // TYPE KbagElement ElementType = 0x4B424147 // KBAG ShshElement ElementType = 0x53485348 // SHSH CertElement ElementType = 0x43455254 // CERT ChipElement ElementType = 0x43484950 // CHIP ProdElement ElementType = 0x50524F44 // PROD SdomElement ElementType = 0x53444F4D // SDOM BordElement ElementType = 0x424F5244 // BORD SepoElement ElementType = 0x5345504F // SEPO EcidElement ElementType = 0x45434944 // ECID )
View Source
const OTABuildManifestFilename = "AssetData/boot/BuildManifest.plist"
Variables ¶
View Source
var MaxDownloadTries = 10
Functions ¶
func FindElement ¶
func FindElement(data *bufio.Reader, signature ElementType, out interface{}) error
func NewiTunesVersionMaster ¶
NewiTunesVersionMaster creates a new iTunesVersionMaster struct, parsed and ready to use
Types ¶
type BuildIdentity ¶
type BuildIdentity struct { ApChipID string // these are ints really ApBoardID string ApSecurityDomain string BbChipID string BbProvisioningManifestKeyHash []byte BbActivationManifestKeyHash []byte BbCalibrationManifestKeyHash []byte BbFactoryActivationManifestKeyHash []byte BbFDRSecurityKeyHash []byte Info BuildIdentityInfo Manifest BuildIdentityManifest `plist:"Manifest"` // RawManifest interface{} `plist:"Manifest"` UniqueBuildID []byte BbSkeyId []byte }
type BuildIdentityInfo ¶
type BuildIdentityManifest ¶
type BuildInformation ¶
type BuildInformation struct { Restore *IndividualBuild Update *IndividualBuild SameAs BuildNumber OfferRestoreAsUpdate bool }
type BuildManifest ¶
type BuildManifest struct { BuildIdentities []BuildIdentity SupportedProductTypes []string ProductVersion string ProductBuildVersion string }
type BuildNumber ¶
type BuildNumber string
func (BuildNumber) String ¶
func (b BuildNumber) String() string
type ElementType ¶
type ElementType uint32
type HTTPClient ¶
type HTTPClient interface { Do(*http.Request) (*http.Response, error) Get(string) (*http.Response, error) Head(string) (*http.Response, error) Post(string, string, io.Reader) (*http.Response, error) PostForm(string, url.Values) (*http.Response, error) }
HTTPClient is a wrapper for client
var DefaultClient HTTPClient = &http.Client{ Timeout: 30 * time.Second, }
type IPSW ¶
type IPSW struct { Identifier string BuildID string Resource string // contains filtered or unexported fields }
func NewIPSWWithIdentifierBuild ¶
func NewIPSWWithIdentifierBuild(client *api.IPSWClient, identifier, build string) (*IPSW, error)
func (*IPSW) BuildManifest ¶
func (i *IPSW) BuildManifest() (*BuildManifest, error)
func (*IPSW) PlistFromZip ¶
func (*IPSW) RawManifest ¶
func (*IPSW) RestorePlist ¶
type Identifier ¶
type Identifier string
func (Identifier) String ¶
func (i Identifier) String() string
type ImageContainer ¶
type ImageContainer int
type ImageElementHeader ¶
type ImageElementHeader struct {
Signature, FullSize, DataSize uint32
}
type ImageHeader ¶
type ImageHeader struct {
Signature, FullSize, DataSize, ShshOffset, ImageType uint32
}
type ImageKbagElement ¶
type ImageKbagElement struct { Header ImageElementHeader State, IType uint32 IV [16]byte Key [32]byte }
type IndividualBuild ¶
type IndividualBuild struct { BuildVersion BuildNumber DocumentationURL string FirmwareURL string FirmwareSHA1 string ProductVersion string }
type Manifest ¶
type Manifest struct {
Info ManifestInfo
}
type ManifestInfo ¶
type ManifestInfo struct {
Path string
}
type OTABuildIdentity ¶
type OTABuildIdentityInfo ¶
type OTABuildIdentityInfo struct {
DeviceClass string `plist:"DeviceClass"`
}
type OTABuildManifest ¶
type OTABuildManifest struct { BuildIdentities []*OTABuildIdentity `plist:"BuildIdentities"` SupportedProductTypes []Identifier `plist:"SupportedProductTypes"` ProductVersion string `plist:"ProductVersion"` ProductBuildVersion string `plist:"ProductBuildVersion"` }
func (*OTABuildManifest) DeviceByIdentifier ¶
func (m *OTABuildManifest) DeviceByIdentifier(identifier Identifier) (*Device, error)
type OTAFirmware ¶
type OTAFirmware struct { BuildID string `plist:"Build"` InstallationSize string `plist:"InstallationSize"` Version string `plist:"OSVersion"` PrerequisiteBuild string `plist:"PrerequisiteBuild"` PrerequisiteOSVersion string `plist:"PrerequisiteOSVersion"` ReleaseType string `plist:"ReleaseType"` DocumentationID string `plist:"SUDocumentationID"` SupportedDevices []Identifier `plist:"SupportedDevices"` DownloadSize int `plist:"_DownloadSize"` UnarchivedSize int `plist:"_UnarchivedSize"` BaseURL string `plist:"__BaseURL"` RelativePath string `plist:"__RelativePath"` MarketingVersion string `plist:"MarketingVersion"` // for watches }
Firmware release
func (*OTAFirmware) GetURL ¶
func (o *OTAFirmware) GetURL() string
type OTAXML ¶
type OTAXML struct {
Assets []*OTAFirmware
}
type OTAZip ¶
type OTAZip struct { *IPSW // contains filtered or unexported fields }
func (*OTAZip) BuildManifest ¶
func (z *OTAZip) BuildManifest() (*OTABuildManifest, error)
type Restore ¶
type Restore struct { DeviceClass string Devices []*Device `plist:"DeviceMap"` ProductBuildVersion string ProductType Identifier ProductVersion string SupportedProductTypes []Identifier }
func (*Restore) DeviceByIdentifier ¶
func (r *Restore) DeviceByIdentifier(identifier Identifier) (*Device, error)
type SHSHDevice ¶
type SHSHJSON ¶
type SHSHJSON map[Identifier]*SHSHDevice
func NewSHSHJSON ¶
NewSHSHJSON returns a new instance of SHSHJSON
type SigningStatus ¶
type SigningStatus struct { BuildID string `json:"build"` Version string `json:"version"` Signing bool `json:"signing"` Started string `json:"started"` Stopped string `json:"stopped"` }
Firmware is a change to signing window firmware
type VersionWrapper ¶
type VersionWrapper struct {
MobileDeviceSoftwareVersions map[Identifier]map[BuildNumber]*BuildInformation
}
Click to show internal directories.
Click to hide internal directories.