Class: Idevice::DiagnosticsRelayClient
Constant Summary
collapse
- FLAG_WAIT_FOR_DISCONNECT =
(1 << 1)
- FLAG_DISPLAY_PASS =
(1 << 2)
- FLAG_DISPLAY_FAIL =
(1 << 3)
- REQUEST_TYPES =
[
"All",
"HDMI",
"WiFi",
"GasGaugue",
"NAND",
]
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from LibHelpers
included
#initialize
Class Method Details
.attach(opts = {}) ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/idevice/diagnostics_relay.rb', line 54
def self.attach(opts={})
idevice = opts[:idevice] || Idevice.attach(opts)
ldsvc = opts[:lockdown_service]
unless ldsvc
ldclient = opts[:lockdown_client] || LockdownClient.attach(opts.merge(idevice:idevice))
ldsvc = begin
ldclient.start_service("com.apple.mobile.diagnostics_relay")
rescue LockdownError
ldclient.start_service("com.apple.iosdiagnostics.relay")
end
end
FFI::MemoryPointer.new(:pointer) do |p_drc|
err = C.diagnostics_relay_client_new(idevice, ldsvc, p_drc)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
drc = p_drc.read_pointer
raise DiagnosticsRelayError, "diagnostics_relay_client_new returned a NULL diagnostics_relay_client_t pointer" if drc.null?
return new(drc)
end
end
|
.release(ptr) ⇒ Object
45
46
47
48
49
50
51
|
# File 'lib/idevice/diagnostics_relay.rb', line 45
def self.release(ptr)
C::Freelock.synchronize do
unless ptr.null?
C.diagnostics_relay_client_free(ptr)
end
end
end
|
Instance Method Details
#diagnostics(type = "All") ⇒ Object
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/idevice/diagnostics_relay.rb', line 79
def diagnostics(type="All")
FFI::MemoryPointer.new(:pointer) do |p_diags|
err = C.diagnostics_relay_request_diagnostics(self, type, p_diags)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
diags = p_diags.read_pointer.read_plist_t
raise DiagnosticsRelayError, "diagnostics_relay_request_diagnostics returned null diagnostics" if diags.nil?
return diags
end
end
|
#goodbye ⇒ Object
120
121
122
123
124
|
# File 'lib/idevice/diagnostics_relay.rb', line 120
def goodbye
err = C.diagnostics_relay_goodbye(self)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
return true
end
|
#ioregistry_entry(name, klass) ⇒ Object
100
101
102
103
104
105
106
107
108
|
# File 'lib/idevice/diagnostics_relay.rb', line 100
def ioregistry_entry(name, klass)
FFI::MemoryPointer.new(:pointer) do |p_result|
err = C.diagnostics_relay_query_ioregistry_entry(self, name, klass, p_result)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
result = p_result.read_pointer.read_plist_t
raise DiagnosticsRelayError, "diagnostics_relay_query_ioregistry_entry returned a null result" if result.nil?
return result
end
end
|
#ioregistry_plane(plane) ⇒ Object
110
111
112
113
114
115
116
117
118
|
# File 'lib/idevice/diagnostics_relay.rb', line 110
def ioregistry_plane(plane)
FFI::MemoryPointer.new(:pointer) do |p_result|
err = C.diagnostics_relay_query_ioregistry_plane(self, plane, p_result)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
result = p_result.read_pointer.read_plist_t
raise DiagnosticsRelayError, "diagnostics_relay_query_ioregistry_plane returned a null result" if result.nil?
return result
end
end
|
#mobilegestalt(*keys) ⇒ Object
90
91
92
93
94
95
96
97
98
|
# File 'lib/idevice/diagnostics_relay.rb', line 90
def mobilegestalt(*keys)
FFI::MemoryPointer.new(:pointer) do |p_result|
err = C.diagnostics_relay_query_mobilegestalt(self, Plist_t.from_ruby(keys), p_result)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
result = p_result.read_pointer.read_plist_t
raise DiagnosticsRelayError, "diagnostics_relay_query_mobilegestalt returned a null result" if result.nil?
return result
end
end
|
#restart(flags = 0) ⇒ Object
132
133
134
135
136
|
# File 'lib/idevice/diagnostics_relay.rb', line 132
def restart(flags=0)
err = C.diagnostics_relay_restart(self, flags)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
return true
end
|
#shutdown(flags = 0) ⇒ Object
138
139
140
141
142
|
# File 'lib/idevice/diagnostics_relay.rb', line 138
def shutdown(flags=0)
err = C.diagnostics_relay_shutdown(self, flags)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
return true
end
|
#sleep ⇒ Object
126
127
128
129
130
|
# File 'lib/idevice/diagnostics_relay.rb', line 126
def sleep
err = C.diagnostics_relay_sleep(self)
raise DiagnosticsRelayError, "Diagnostics Relay error: #{err}" if err != :SUCCESS
return true
end
|