Documentation ¶
Overview ¶
* sonic-gidevice Connect to your iOS Devices. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.
* sonic-gidevice Connect to your iOS Devices. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.
* sonic-gidevice Connect to your iOS Devices. * Copyright (C) 2022 SonicCloudOrg * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.
Index ¶
- Constants
- Variables
- func DeviceVersion(version ...int) int
- func NewRemoteConnect(ip string, port int, timeout int) (*device, error)
- func SetDebug(debug bool, libDebug ...bool)
- type Afc
- type AfcDiskInfo
- type AfcFile
- func (f *AfcFile) Close() (err error)
- func (f *AfcFile) Lock(lockType AfcLockType) (err error)
- func (f *AfcFile) Read(b []byte) (n int, err error)
- func (f *AfcFile) Seek(offset int64, whence int) (ret int64, err error)
- func (f *AfcFile) Tell() (n uint64, err error)
- func (f *AfcFile) Truncate(size int64) (err error)
- func (f *AfcFile) Unlock() (err error)
- func (f *AfcFile) Write(b []byte) (n int, err error)
- type AfcFileInfo
- type AfcFileMode
- type AfcLinkType
- type AfcLockType
- type Amfi
- type AppLaunchOption
- type AppListOption
- type Application
- type ApplicationType
- type CPUInfo
- type CoordinateSystem
- type CrashReportMover
- type CrashReportMoverOption
- type Device
- type DeviceInfo
- type DeviceProperties
- type DiagnosticsRelay
- type FPSData
- type FPSInfo
- type GPUData
- type GPUInfo
- type HouseArrest
- type ImageMounter
- type InnerConn
- type InstallationProxy
- type InstallationProxyOption
- type Instruments
- type Lockdown
- type LockdownType
- type MEMInfo
- type NetWorkingInfo
- type NetworkDataConnectionDetected
- type NetworkDataConnectionUpdate
- type NetworkDataInterfaceDetection
- type OrientationState
- type PairRecord
- type Pcapd
- type PerfDataBase
- type PerfOption
- func WithPerfBundleID(bundleID string) PerfOption
- func WithPerfFPS(b bool) PerfOption
- func WithPerfGPU(b bool) PerfOption
- func WithPerfNetwork(b bool) PerfOption
- func WithPerfOutputInterval(intervalMilliseconds int) PerfOption
- func WithPerfPID(pid int) PerfOption
- func WithPerfProcessAttributes(attrs ...string) PerfOption
- func WithPerfSystemAttributes(attrs ...string) PerfOption
- func WithPerfSystemCPU(b bool) PerfOption
- func WithPerfSystemDisk(b bool) PerfOption
- func WithPerfSystemMem(b bool) PerfOption
- func WithPerfSystemNetwork(b bool) PerfOption
- type PerfOptions
- type Perfd
- type PerfmonOption
- type Process
- type Screenshot
- type SimulateLocation
- type SpringBoard
- type SyslogRelay
- type SystemCPUData
- type SystemDiskData
- type SystemMemData
- type SystemNetworkData
- type Testmanagerd
- type Usbmux
- type WebInspector
- type XCTestManagerDaemon
- type XCTestOption
Constants ¶
const ( CoordinateSystemWGS84 = libimobiledevice.CoordinateSystemWGS84 CoordinateSystemBD09 = libimobiledevice.CoordinateSystemBD09 CoordinateSystemGCJ02 = libimobiledevice.CoordinateSystemGCJ02 )
const ( ApplicationTypeSystem = libimobiledevice.ApplicationTypeSystem ApplicationTypeUser = libimobiledevice.ApplicationTypeUser ApplicationTypeInternal = libimobiledevice.ApplicationTypeInternal ApplicationTypeAny = libimobiledevice.ApplicationTypeAny )
const LockdownPort = 62078
Variables ¶
var ErrAfcStatNotExist = errors.New("afc stat: no such file or directory")
Functions ¶
func DeviceVersion ¶
func NewRemoteConnect ¶ added in v0.7.0
Types ¶
type Afc ¶
type Afc interface { DiskInfo() (diskInfo *AfcDiskInfo, err error) ReadDir(dirname string) (names []string, err error) Stat(filename string) (info *AfcFileInfo, err error) Open(filename string, mode AfcFileMode) (file *AfcFile, err error) Remove(filePath string) (err error) Rename(oldPath string, newPath string) (err error) Mkdir(path string) (err error) Link(oldName string, newName string, linkType AfcLinkType) (err error) Truncate(filePath string, size int64) (err error) SetFileModTime(filePath string, modTime time.Time) (err error) // Hash sha1 algorithm Hash(filePath string) ([]byte, error) // HashWithRange sha1 algorithm with file range HashWithRange(filePath string, start, end uint64) ([]byte, error) RemoveAll(path string) (err error) WriteFile(filename string, data []byte, perm AfcFileMode) (err error) }
type AfcDiskInfo ¶
type AfcFile ¶
type AfcFile struct {
// contains filtered or unexported fields
}
func (*AfcFile) Lock ¶
func (f *AfcFile) Lock(lockType AfcLockType) (err error)
type AfcFileInfo ¶
type AfcFileInfo struct {
// contains filtered or unexported fields
}
func (*AfcFileInfo) CreationTime ¶
func (f *AfcFileInfo) CreationTime() time.Time
func (*AfcFileInfo) IsDir ¶
func (f *AfcFileInfo) IsDir() bool
func (*AfcFileInfo) ModTime ¶
func (f *AfcFileInfo) ModTime() time.Time
func (*AfcFileInfo) Name ¶
func (f *AfcFileInfo) Name() string
func (*AfcFileInfo) Size ¶
func (f *AfcFileInfo) Size() int64
type AfcFileMode ¶
type AfcFileMode uint32
const ( AfcFileModeRdOnly AfcFileMode = 0x00000001 AfcFileModeRw AfcFileMode = 0x00000002 AfcFileModeWrOnly AfcFileMode = 0x00000003 AfcFileModeWr AfcFileMode = 0x00000004 AfcFileModeAppend AfcFileMode = 0x00000005 AfcFileModeRdAppend AfcFileMode = 0x00000006 )
type AfcLinkType ¶
type AfcLinkType int
const ( AfcLinkTypeHardLink AfcLinkType = 1 AfcLinkTypeSymLink AfcLinkType = 2 )
type AfcLockType ¶
type AfcLockType int
const ( AfcLockTypeExclusiveLock AfcLockType = 2 | 4 AfcLockTypeUnlock AfcLockType = 8 | 4 )
type AppLaunchOption ¶
type AppLaunchOption func(option *appLaunchOption)
func WithAppPath ¶
func WithAppPath(appPath string) AppLaunchOption
func WithArguments ¶
func WithArguments(arguments []interface{}) AppLaunchOption
func WithEnvironment ¶
func WithEnvironment(environment map[string]interface{}) AppLaunchOption
func WithKillExisting ¶
func WithKillExisting(b bool) AppLaunchOption
func WithOptions ¶
func WithOptions(options map[string]interface{}) AppLaunchOption
type AppListOption ¶
type AppListOption func(option *appListOption)
func WithAppsMatching ¶
func WithAppsMatching(appsMatching map[string]interface{}) AppListOption
func WithUpdateToken ¶
func WithUpdateToken(updateToken string) AppListOption
type Application ¶
type Application struct { AppExtensionUUIDs []string `json:"AppExtensionUUIDs,omitempty"` BundlePath string `json:"BundlePath"` CFBundleIdentifier string `json:"CFBundleIdentifier"` ContainerBundleIdentifier string `json:"ContainerBundleIdentifier,omitempty"` ContainerBundlePath string `json:"ContainerBundlePath,omitempty"` DisplayName string `json:"DisplayName"` ExecutableName string `json:"ExecutableName,omitempty"` Placeholder bool `json:"Placeholder,omitempty"` PluginIdentifier string `json:"PluginIdentifier,omitempty"` PluginUUID string `json:"PluginUUID,omitempty"` Restricted int `json:"Restricted"` Type string `json:"Type"` Version string `json:"Version"` }
type ApplicationType ¶
type ApplicationType = libimobiledevice.ApplicationType
type CPUInfo ¶
type CPUInfo struct { Pid string `json:"PID,omitempty"` // 进程ID CPUCount int `json:"SystemCpuCount"` // CPU总数 TimeStamp int64 `json:"TimeStamp"` // 时间戳 CPUUsage float64 `json:"ProcessCpuUsage,omitempty"` // 单个进程的CPU使用率 SysCpuUsage float64 `json:"SystemCpuUsage,omitempty"` // 系统总体CPU占用 AttrCtxSwitch int64 `json:"ProcessAttrCtxSwitch,omitempty"` // 上下文切换数 AttrIntWakeups int64 `json:"ProcessAttrIntWakeups,omitempty"` // 唤醒数 Mess string `json:"ProcessInfo,omitempty"` // 提示信息,当PID没输入或者信息错误时提示 }
type CoordinateSystem ¶
type CoordinateSystem = libimobiledevice.CoordinateSystem
type CrashReportMover ¶
type CrashReportMover interface { Move(hostDir string, opts ...CrashReportMoverOption) (err error) // contains filtered or unexported methods }
type CrashReportMoverOption ¶
type CrashReportMoverOption func(opt *crashReportMoverOption)
func WithExtractRawCrashReport ¶
func WithExtractRawCrashReport(b bool) CrashReportMoverOption
func WithKeepCrashReport ¶
func WithKeepCrashReport(b bool) CrashReportMoverOption
func WithWhenMoveIsDone ¶
func WithWhenMoveIsDone(whenDone func(filename string)) CrashReportMoverOption
type Device ¶
type Device interface { Properties() DeviceProperties NewConnect(port int, timeout ...time.Duration) (InnerConn, error) ReadPairRecord() (pairRecord *PairRecord, err error) SavePairRecord(pairRecord *PairRecord) (err error) DeletePairRecord() (err error) QueryType() (LockdownType, error) GetValue(domain, key string) (v interface{}, err error) Pair() (pairRecord *PairRecord, err error) Images(imgType ...string) (imageSignatures [][]byte, err error) MountDeveloperDiskImage(dmgPath string, signaturePath string) (err error) Screenshot() (raw *bytes.Buffer, err error) SimulateLocationUpdate(longitude float64, latitude float64, coordinateSystem ...CoordinateSystem) (err error) SimulateLocationRecover() (err error) InstallationProxyBrowse(opts ...InstallationProxyOption) (currentList []interface{}, err error) InstallationProxyLookup(opts ...InstallationProxyOption) (lookupResult interface{}, err error) AppLaunch(bundleID string, opts ...AppLaunchOption) (pid int, err error) AppKill(pid int) (err error) AppRunningProcesses() (processes []Process, err error) AppList(opts ...AppListOption) (apps []Application, err error) DeviceInfo() (devInfo *DeviceInfo, err error) AmfiService() (Amfi, error) AfcService() (afc Afc, err error) AppInstall(ipaPath string) (err error) AppUninstall(bundleID string) (err error) HouseArrestService() (houseArrest HouseArrest, err error) Syslog() (lines <-chan string, err error) SyslogStop() PcapdService() (pcapd Pcapd, err error) Pcap() (packet <-chan []byte, err error) PcapStop() Reboot() error Shutdown() error PowerSource() (powerInfo map[string]interface{}, err error) MoveCrashReport(hostDir string, opts ...CrashReportMoverOption) (err error) XCTest(bundleID string, opts ...XCTestOption) (out <-chan string, cancel context.CancelFunc, err error) GetIconPNGData(bundleId string) (raw *bytes.Buffer, err error) GetInterfaceOrientation() (orientation OrientationState, err error) PerfStart(opts ...PerfOption) (data <-chan []byte, err error) PerfStop() WebInspectorService() (webInspector WebInspector, err error) // contains filtered or unexported methods }
type DeviceInfo ¶
type DeviceInfo struct { Description string `json:"_deviceDescription"` DisplayName string `json:"_deviceDisplayName"` Identifier string `json:"_deviceIdentifier"` Version string `json:"_deviceVersion"` ProductType string `json:"_productType"` ProductVersion string `json:"_productVersion"` XRDeviceClassName string `json:"_xrdeviceClassName"` }
type DeviceProperties ¶
type DeviceProperties = libimobiledevice.DeviceProperties
type DiagnosticsRelay ¶
type FPSData ¶ added in v0.6.6
type FPSData struct { PerfDataBase // fps FPS int `json:"fps"` }
type GPUData ¶ added in v0.6.6
type GPUData struct { PerfDataBase // gpu TilerUtilization int64 `json:"tiler_utilization"` // 处理顶点的 GPU 时间占比 DeviceUtilization int64 `json:"device_utilization"` // 设备利用率 RendererUtilization int64 `json:"renderer_utilization"` // 渲染器利用率 }
type HouseArrest ¶
type ImageMounter ¶
type ImageMounter interface { Images(imgType string) (imageSignatures [][]byte, err error) UploadImage(imgType, dmgPath string, signatureData []byte) (err error) Mount(imgType, devImgPath string, signatureData []byte) (err error) UploadImageAndMount(imgType, devImgPath, dmgPath, signaturePath string) (err error) }
type InnerConn ¶
type InnerConn = libimobiledevice.InnerConn
type InstallationProxy ¶
type InstallationProxy interface { Browse(opts ...InstallationProxyOption) (currentList []interface{}, err error) Lookup(opts ...InstallationProxyOption) (lookupResult interface{}, err error) Install(bundleID, packagePath string) (err error) Uninstall(bundleID string) (err error) }
type InstallationProxyOption ¶
type InstallationProxyOption func(*installationProxyOption)
func WithApplicationType ¶
func WithApplicationType(appType ApplicationType) InstallationProxyOption
func WithBundleIDs ¶
func WithBundleIDs(BundleIDs ...string) InstallationProxyOption
func WithMetaData ¶
func WithMetaData(b bool) InstallationProxyOption
func WithReturnAttributes ¶
func WithReturnAttributes(attrs ...string) InstallationProxyOption
type Instruments ¶
type Instruments interface { AppLaunch(bundleID string, opts ...AppLaunchOption) (pid int, err error) AppKill(pid int) (err error) AppRunningProcesses() (processes []Process, err error) AppList(opts ...AppListOption) (apps []Application, err error) DeviceInfo() (devInfo *DeviceInfo, err error) // contains filtered or unexported methods }
type Lockdown ¶
type Lockdown interface { QueryType() (LockdownType, error) GetValue(domain, key string) (v interface{}, err error) SetValue(domain, key string, value interface{}) (err error) Pair() (pairRecord *PairRecord, err error) EnterRecovery() (err error) ImageMounterService() (imageMounter ImageMounter, err error) ScreenshotService() (screenshot Screenshot, err error) SimulateLocationService() (simulateLocation SimulateLocation, err error) InstallationProxyService() (installationProxy InstallationProxy, err error) InstrumentsService() (instruments Instruments, err error) TestmanagerdService() (testmanagerd Testmanagerd, err error) AfcService() (afc Afc, err error) HouseArrestService() (houseArrest HouseArrest, err error) SyslogRelayService() (syslogRelay SyslogRelay, err error) DiagnosticsRelayService() (diagnostics DiagnosticsRelay, err error) CrashReportMoverService() (crashReportMover CrashReportMover, err error) SpringBoardService() (springBoard SpringBoard, err error) WebInspectorService() (webInspector WebInspector, err error) // contains filtered or unexported methods }
type LockdownType ¶
type LockdownType = libimobiledevice.LockdownType
type NetWorkingInfo ¶
type NetworkDataConnectionDetected ¶ added in v0.6.6
type NetworkDataConnectionDetected struct { PerfDataBase LocalAddress string `json:"local_address"` // 0 RemoteAddress string `json:"remote_address"` // 1 InterfaceIndex int64 `json:"interface_index"` // 2 Pid int64 `json:"pid"` // 3 RecvBufferSize int64 `json:"recv_buffer_size"` // 4 RecvBufferUsed int64 `json:"recv_buffer_used"` // 5 SerialNumber int64 `json:"serial_number"` // 6 Kind int64 `json:"kind"` // 7 }
network-connection-detected
type NetworkDataConnectionUpdate ¶ added in v0.6.6
type NetworkDataConnectionUpdate struct { PerfDataBase RxBytes int64 `json:"rx_bytes"` // 0 RxPackets int64 `json:"rx_packets"` // 1 TxBytes int64 `json:"tx_bytes"` // 2 TxPackets int64 `json:"tx_packets"` // 3 RxDups int64 `json:"rx_dups,omitempty"` // 4 RxOOO int64 `json:"rx_000,omitempty"` // 5 TxRetx int64 `json:"tx_retx,omitempty"` // 6 MinRTT int64 `json:"min_rtt,omitempty"` // 7 AvgRTT int64 `json:"avg_rtt,omitempty"` // 8 ConnectionSerial int64 `json:"connection_serial"` // 9 }
network-connection-update
type NetworkDataInterfaceDetection ¶ added in v0.6.6
type NetworkDataInterfaceDetection struct { PerfDataBase InterfaceIndex int64 `json:"interface_index"` // 0 Name string `json:"name"` // 1 }
network-interface-detection
type OrientationState ¶
type OrientationState = libimobiledevice.OrientationState
type PairRecord ¶
type PairRecord = libimobiledevice.PairRecord
type PerfDataBase ¶ added in v0.6.6
type PerfOption ¶ added in v0.6.6
type PerfOption func(*PerfOptions)
func WithPerfBundleID ¶ added in v0.6.6
func WithPerfBundleID(bundleID string) PerfOption
func WithPerfFPS ¶ added in v0.6.6
func WithPerfFPS(b bool) PerfOption
func WithPerfGPU ¶ added in v0.6.6
func WithPerfGPU(b bool) PerfOption
func WithPerfNetwork ¶ added in v0.6.6
func WithPerfNetwork(b bool) PerfOption
func WithPerfOutputInterval ¶ added in v0.6.6
func WithPerfOutputInterval(intervalMilliseconds int) PerfOption
func WithPerfPID ¶ added in v0.6.6
func WithPerfPID(pid int) PerfOption
func WithPerfProcessAttributes ¶ added in v0.6.6
func WithPerfProcessAttributes(attrs ...string) PerfOption
func WithPerfSystemAttributes ¶ added in v0.6.6
func WithPerfSystemAttributes(attrs ...string) PerfOption
func WithPerfSystemCPU ¶ added in v0.6.6
func WithPerfSystemCPU(b bool) PerfOption
func WithPerfSystemDisk ¶ added in v0.6.6
func WithPerfSystemDisk(b bool) PerfOption
func WithPerfSystemMem ¶ added in v0.6.6
func WithPerfSystemMem(b bool) PerfOption
func WithPerfSystemNetwork ¶ added in v0.6.6
func WithPerfSystemNetwork(b bool) PerfOption
type PerfOptions ¶ added in v0.6.6
type PerfOptions struct { // system SysCPU bool `json:"sys_cpu,omitempty" yaml:"sys_cpu,omitempty"` SysMem bool `json:"sys_mem,omitempty" yaml:"sys_mem,omitempty"` SysDisk bool `json:"sys_disk,omitempty" yaml:"sys_disk,omitempty"` SysNetwork bool `json:"sys_network,omitempty" yaml:"sys_network,omitempty"` FPS bool `json:"fps,omitempty" yaml:"fps,omitempty"` Network bool `json:"network,omitempty" yaml:"network,omitempty"` // process BundleID string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"` Pid int `json:"pid,omitempty" yaml:"pid,omitempty"` // config OutputInterval int `json:"output_interval,omitempty" yaml:"output_interval,omitempty"` // ms SystemAttributes []string `json:"system_attributes,omitempty" yaml:"system_attributes,omitempty"` ProcessAttributes []string `json:"process_attributes,omitempty" yaml:"process_attributes,omitempty"` // contains filtered or unexported fields }
type PerfmonOption ¶
type Screenshot ¶
type SimulateLocation ¶
type SimulateLocation interface { Update(longitude float64, latitude float64, coordinateSystem ...CoordinateSystem) (err error) // Recover try to revert back Recover() (err error) }
type SpringBoard ¶
type SyslogRelay ¶
type SyslogRelay interface { Lines() <-chan string Stop() }
type SystemCPUData ¶ added in v0.6.6
type SystemCPUData struct { PerfDataBase // system cpu NiceLoad float64 `json:"nice_load"` SystemLoad float64 `json:"system_load"` TotalLoad float64 `json:"total_load"` UserLoad float64 `json:"user_load"` }
type SystemDiskData ¶ added in v0.6.6
type SystemDiskData struct { PerfDataBase // disk DataRead int64 `json:"data_read"` DataWritten int64 `json:"data_written"` ReadOps int64 `json:"reads_in"` WriteOps int64 `json:"writes_out"` }
type SystemMemData ¶ added in v0.6.6
type SystemMemData struct { PerfDataBase // mem AppMemory int64 `json:"app_memory"` FreeMemory int64 `json:"free_memory"` UsedMemory int64 `json:"used_memory"` WiredMemory int64 `json:"wired_memory"` CachedFiles int64 `json:"cached_files"` Compressed int64 `json:"compressed"` SwapUsed int64 `json:"swap_used"` }
type SystemNetworkData ¶ added in v0.6.6
type SystemNetworkData struct { PerfDataBase // network BytesIn int64 `json:"bytes_in"` BytesOut int64 `json:"bytes_out"` PacketsIn int64 `json:"packets_in"` PacketsOut int64 `json:"packets_out"` }
type Testmanagerd ¶
type Testmanagerd interface {
// contains filtered or unexported methods
}
type Usbmux ¶
type WebInspector ¶
type XCTestManagerDaemon ¶
type XCTestManagerDaemon interface {
// contains filtered or unexported methods
}
type XCTestOption ¶
type XCTestOption func(opt *xcTestOption)
func WithXCTestEnv ¶
func WithXCTestEnv(env map[string]interface{}) XCTestOption
func WithXCTestOpt ¶
func WithXCTestOpt(appOpt map[string]interface{}) XCTestOption
Source Files ¶
- afc.go
- amfi.go
- crashreportmover.go
- device.go
- diagnosticsrelay.go
- housearrest.go
- idevice.go
- imagemounter.go
- installationproxy.go
- instruments.go
- lockdown.go
- pcapd.go
- perfd.go
- screenshot.go
- simulatelocation.go
- springboard.go
- syslogrelay.go
- testmanagerd.go
- usbmux.go
- webinspector.go
- xctestmanagerdaemon.go
Directories ¶
Path | Synopsis |
---|---|
pkg
|
|
libimobiledevice
* sonic-gidevice Connect to your iOS Devices.
|
* sonic-gidevice Connect to your iOS Devices. |