xpc

package
v1.0.122 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package xpc contains a connection stuct and the codec for the xpc protocol. The xpc protocol is used to communicate with services on iOS17+ devices.

Index

Constants

View Source
const (
	AlwaysSetFlag        = uint32(0x00000001)
	DataFlag             = uint32(0x00000100)
	HeartbeatRequestFlag = uint32(0x00010000)
	HeartbeatReplyFlag   = uint32(0x00020000)
	FileOpenFlag         = uint32(0x00100000)
	InitHandshakeFlag    = uint32(0x00400000)
)

Variables

This section is empty.

Functions

func EncodeMessage

func EncodeMessage(w io.Writer, message Message) error

EncodeMessage creates a RemoteXPC message encoded with the body and flags provided

Types

type Connection

type Connection struct {
	// contains filtered or unexported fields
}

Connection represents a http2 based connection to an XPC service on an iOS17 device.

func New

func New(clientServer io.ReadWriter, serverClient io.ReadWriter, closer io.Closer) (*Connection, error)

New creates a new connection to an XPC service on an iOS17 device.

func (*Connection) Close

func (c *Connection) Close() error

func (*Connection) ReceiveOnClientServerStream

func (c *Connection) ReceiveOnClientServerStream() (map[string]interface{}, error)

func (*Connection) ReceiveOnServerClientStream

func (c *Connection) ReceiveOnServerClientStream() (map[string]interface{}, error)

func (*Connection) Send

func (c *Connection) Send(data map[string]interface{}, flags ...uint32) error

Send sends the passed data as XPC message. Additional flags can be passed via the flags argument (the default ones are AlwaysSetFlag and if data != nil DataFlag)

type FileTransfer

type FileTransfer struct {
	MsgId        uint64
	TransferSize uint64
}

type Message

type Message struct {
	Flags uint32
	Body  map[string]interface{}
	Id    uint64
}

func DecodeMessage

func DecodeMessage(r io.Reader) (Message, error)

DecodeMessage expects a full RemoteXPC message and decodes the message body into a map

func (Message) IsFileOpen

func (m Message) IsFileOpen() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL