Class: Idevice::RestoreClient
Overview
Used to initiate the device restore process or reboot a device.
Class Method Summary
collapse
Instance Method Summary
collapse
#initialize
Class Method Details
.attach(opts = {}) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/idevice/restore.rb', line 40
def self.attach(opts={})
idevice = opts[:idevice] || Idevice.attach(opts)
label = opts[:label] || "ruby-idevice"
FFI::MemoryPointer.new(:pointer) do |p_rc|
err = C.restored_client_new(idevice, p_rc, label)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
rc = p_rc.read_pointer
raise NPError, "restore_client_new returned a NULL client" if rc.null?
return new(rc)
end
end
|
.release(ptr) ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/idevice/restore.rb', line 32
def self.release(ptr)
C::Freelock.synchronize do
unless ptr.null?
C.restored_client_free(ptr)
end
end
end
|
Instance Method Details
#get_value(key) ⇒ Object
88
89
90
91
92
93
94
|
# File 'lib/idevice/restore.rb', line 88
def get_value(key)
FFI::MemoryPointer.new(:pointer) do |p_value|
err = C.restored_get_value(self, key, p_value)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
return p_value.read_pointer.read_plist_t
end
end
|
#goodbye ⇒ Object
54
55
56
57
58
59
|
# File 'lib/idevice/restore.rb', line 54
def goodbye
err = C.restored_goodbye(self)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
return true
end
|
#query_type ⇒ Object
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/idevice/restore.rb', line 61
def query_type
FFI::MemoryPointer.new(:pointer) do |p_type|
FFI::MemoryPointer.new(:uint64) do |p_vers|
err = C.restored_query_type(self, p_type, p_vers)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
type = p_type.read_pointer
raise RestoreErrror, "restored_query_type returned a null type" if type.null?
result = {
type: type.read_string,
version: p_vers.read_uint64,
}
C.free(type)
return result
end
end
end
|
#query_value(key) ⇒ Object
79
80
81
82
83
84
85
86
|
# File 'lib/idevice/restore.rb', line 79
def query_value(key)
FFI::MemoryPointer.new(:pointer) do |p_value|
err = C.restored_query_value(self, key, p_value)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
return p_value.read_pointer.read_plist_t
end
end
|
#reboot ⇒ Object
117
118
119
120
121
122
|
# File 'lib/idevice/restore.rb', line 117
def reboot
err = C.restored_reboot(self)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
return true
end
|
#receive_plist ⇒ Object
102
103
104
105
106
107
108
|
# File 'lib/idevice/restore.rb', line 102
def receive_plist
FFI::MemoryPointer.new(:pointer) do |p_value|
err = C.restored_receive(self, p_value)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
return p_value.read_pointer.read_plist_t
end
end
|
#send_plist(dict) ⇒ Object
96
97
98
99
100
|
# File 'lib/idevice/restore.rb', line 96
def send_plist(dict)
err = C.restored_send(self, Plist_t.from_ruby(hash))
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
end
|
#set_label(label) ⇒ Object
124
125
126
127
|
# File 'lib/idevice/restore.rb', line 124
def set_label(label)
C.restored_client_set_label(self, label)
return true
end
|
#start_restore(version, options = {}) ⇒ Object
110
111
112
113
114
115
|
# File 'lib/idevice/restore.rb', line 110
def start_restore(version, options={})
err = C.restored_start_restore(self, Plist_t.from_ruby(options), version)
raise RestoreErrror, "Restore Error: #{err}" if err != :SUCCESS
return true
end
|