Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNotSigned = fmt.Errorf("not signed")
Functions ¶
func GetTSSResponse ¶
GetTSSResponse retrieves a TSS response for the given configuration.
func Personalize ¶
func Personalize(conf *PersonalConfig) ([]byte, error)
Personalize returns a personalized TSS blob
func RandomECID ¶
Types ¶
type Blob ¶
type Blob struct {
ServerVersion string `plist:"@ServerVersion,omitempty"`
ApImg4Ticket []byte `plist:"ApImg4Ticket,omitempty"`
BBTicket []byte `plist:"BBTicket,omitempty"`
BasebandFirmware struct {
MiscHashTableBodyBlob []byte `plist:"Misc-HashTableBody-Blob,omitempty"`
RestoreSbl1HashTableBodyBlob []byte `plist:"RestoreSBL1-HashTableBody-Blob,omitempty"`
Sbl1HashTableBodyBlob []byte `plist:"SBL1-HashTableBody-Blob,omitempty"`
}
EUICCTicket []byte `plist:"eUICC,Ticket,omitempty"`
}
Blob is the TSS response blob with ApImg4Ticket
type Config ¶
type Config struct {
Device string
Version string
Build string
ApNonce []byte
SepNonce []byte
ECID uint64
Image4Supported bool
Proxy string
Insecure bool
Output string
Info *info.Info // Optional, if provided will use this info instead of downloading it
}
Config represents the configuration for a TSS request.
type PersonalConfig ¶
type PersonalConfig struct {
Proxy string
Insecure bool
PersonlID map[string]any
BuildManifest *bm.BuildManifest
}
PersonalConfig is the config for personalizing a TSS blob
type Request ¶
type Request struct {
UUID string `plist:"@UUID,omitempty" mapstructure:"@UUID,omitempty"`
ApImg4Ticket bool `plist:"@ApImg4Ticket,omitempty" mapstructure:"@ApImg4Ticket,omitempty"`
BBTicket bool `plist:"@BBTicket,omitempty" mapstructure:"@BBTicket,omitempty"`
HostPlatformInfo string `plist:"@HostPlatformInfo,omitempty" mapstructure:"@HostPlatformInfo,omitempty"`
Locality string `plist:"@Locality,omitempty" mapstructure:"@Locality,omitempty"`
VersionInfo string `plist:"@VersionInfo,omitempty" mapstructure:"@VersionInfo,omitempty"` // = libauthinstall-850.0.1.0.1 (/usr/lib/libauthinstall.dylib)
ApBoardID uint64 `plist:"ApBoardID,omitempty" mapstructure:"ApBoardID,omitempty"`
ApChipID uint64 `plist:"ApChipID,omitempty" mapstructure:"ApChipID,omitempty"`
ApECID uint64 `plist:"ApECID,omitempty" mapstructure:"ApECID,omitempty"`
ApNonce []byte `plist:"ApNonce,omitempty" mapstructure:"ApNonce,omitempty"`
ApProductionMode bool `plist:"ApProductionMode,omitempty" mapstructure:"ApProductionMode,omitempty"`
ApSecurityDomain int `plist:"ApSecurityDomain,omitempty" mapstructure:"ApSecurityDomain,omitempty"` // = 1
ApSecurityMode bool `plist:"ApSecurityMode,omitempty" mapstructure:"ApSecurityMode,omitempty"`
ApSupportsImg4 bool `plist:"ApSupportsImg4,omitempty" mapstructure:"ApSupportsImg4,omitempty"`
PearlCertificationRootPub []byte `plist:"PearlCertificationRootPub,omitempty" mapstructure:"PearlCertificationRootPub,omitempty"`
UniqueBuildID []byte `plist:"UniqueBuildID,omitempty" mapstructure:"UniqueBuildID,omitempty"`
SepNonce []byte `plist:"SepNonce,omitempty" mapstructure:"SepNonce,omitempty"`
UIDMode bool `plist:"UID_MODE" mapstructure:"UID_MODE"`
NeRDEpoch int `plist:"NeRDEpoch,omitempty" mapstructure:"NeRDEpoch,omitempty"`
PermitNeRDPivot []byte `plist:"PermitNeRDPivot,omitempty" mapstructure:"PermitNeRDPivot,omitempty"`
ApSikaFuse int `plist:"Ap,SikaFuse,omitempty" mapstructure:"Ap,SikaFuse,omitempty"`
// Ap,* fields from manifest
ApOSLongVersion string `plist:"Ap,OSLongVersion,omitempty" mapstructure:"Ap,OSLongVersion,omitempty"`
ApProductMarketingVersion string `plist:"Ap,ProductMarketingVersion,omitempty" mapstructure:"Ap,ProductMarketingVersion,omitempty"`
ApProductType string `plist:"Ap,ProductType,omitempty" mapstructure:"Ap,ProductType,omitempty"`
ApSDKPlatform string `plist:"Ap,SDKPlatform,omitempty" mapstructure:"Ap,SDKPlatform,omitempty"`
ApTarget string `plist:"Ap,Target,omitempty" mapstructure:"Ap,Target,omitempty"`
ApTargetType string `plist:"Ap,TargetType,omitempty" mapstructure:"Ap,TargetType,omitempty"`
// Personalize
LoadableTrustCache bm.IdentityManifest `plist:"LoadableTrustCache,omitempty" mapstructure:"LoadableTrustCache,omitempty"`
PersonalizedDMG bm.IdentityManifest `plist:"PersonalizedDMG,omitempty" mapstructure:"PersonalizedDMG,omitempty"`
}
Request is the request sent to the TSS server
type RestoreRequestRule ¶
type RestoreRequestRule struct {
Actions struct {
EPRO bool `plist:"EPRO,omitempty"`
ESEC bool `plist:"ESEC,omitempty"`
} `plist:"Actions,omitempty"`
Conditions struct {
ApRawProductionMode bool `plist:"ApRawProductionMode,omitempty"`
ApRequiresImage4 bool `plist:"ApRequiresImage4,omitempty"`
} `plist:"Conditions,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.