idevice 1.1.5.5 → 1.1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/lib/idevice/afc.rb +47 -2
- data/lib/idevice/version.rb +1 -1
- data/spec/afc_devicespec.rb +1 -1
- metadata +5 -25
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MWMwMTkyNmExNWI5OTIyMzEzMjE2OGYyYWMzZTg1YmNiNzNjM2Y2Mw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MDA4NDRkYjc4YzVlYzNlZTI4ZTA3YmU4ZTZjZGZjMTAzOWUwYWM1ZA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OWY5NjZjNzIzYWEwMjRkNTViZmNiNTYxZjdmNjQ3M2E1NmM2ZDU0MGZhYjEy
|
10
|
+
YjBmN2E1ZmVjMjdkYzNiNGVjZmQ2Zjk1NWQ2OTg5ODAxNDkzNTA5OTA2NjA3
|
11
|
+
ODcyMzQzZGIzZGE1ZWVjYjliNzAxNDQzNzI0ZjQyNWVmZGZkMWY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ODJjOGE3NzBhNTk5ZWNjODk5M2ViMTU4NDVlOGRkNWVmMmE3Y2MxOTUxOTU2
|
14
|
+
NTg2YWFmMTM0ZDBjNmFkZjBiYjllMzNjNzE4MTVmZWMyMDM1MDRhMTkwZWM1
|
15
|
+
YTE4ZjQ0OWQxOWM4OTgzM2VlNGVhZjcwZDE1NWEyN2ExMTA4NjY=
|
data/lib/idevice/afc.rb
CHANGED
@@ -22,6 +22,7 @@ require 'idevice/c'
|
|
22
22
|
require 'idevice/idevice'
|
23
23
|
require 'idevice/lockdown'
|
24
24
|
require 'idevice/house_arrest'
|
25
|
+
require 'pathname'
|
25
26
|
|
26
27
|
module Idevice
|
27
28
|
class AFCError < IdeviceLibError
|
@@ -189,8 +190,52 @@ module Idevice
|
|
189
190
|
return info[:st_birthtime]
|
190
191
|
end
|
191
192
|
|
192
|
-
|
193
|
-
|
193
|
+
# puts files recursively from the local machine to the remove idevice.
|
194
|
+
# topath should be a directory that exists on the remote device or '.'
|
195
|
+
# for the top-level directory.
|
196
|
+
# opts are passed as-is back to put_path (allowing :chunksize or other options to be set).
|
197
|
+
# opts[:recurse] will be ignored.
|
198
|
+
def put_recursively(frompath, topath, opts={})
|
199
|
+
frompath = Pathname(frompath)
|
200
|
+
opts = opts.dup
|
201
|
+
opts.delete(:recurse)
|
202
|
+
|
203
|
+
if frompath.directory?
|
204
|
+
# remove trailing slash(es)
|
205
|
+
while topath[-1] == '/'
|
206
|
+
topath = topath[0..-2]
|
207
|
+
end
|
208
|
+
|
209
|
+
base_frompath = Pathname(File.basename(frompath.expand_path))
|
210
|
+
self.mkdir("#{topath}/#{base_frompath.basename}") rescue nil
|
211
|
+
|
212
|
+
Dir[frompath.join("**", "*")].each do |rpath|
|
213
|
+
rtopath = "#{topath}/#{Pathname(rpath).relative_path_from(frompath.dirname)}"
|
214
|
+
if File.directory?(rpath)
|
215
|
+
self.mkdir(rtopath)
|
216
|
+
else
|
217
|
+
self.put_path(rpath, rtopath, opts)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
else
|
221
|
+
return self.put_path(frompath, topath, opts)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
# supported options:
|
226
|
+
# chunksize: (Integer) chunksize for file transfer
|
227
|
+
# recurse: (Boolean) if true, will recursively transfer using put_recursively
|
228
|
+
def put_path(frompath, topath, opts={})
|
229
|
+
opts = opts.dup
|
230
|
+
chunksz = opts[:chunksize] || AFC_DEFAULT_CHUNKSIZE
|
231
|
+
recurse = opts.delete(:recurse)
|
232
|
+
|
233
|
+
return put_recursively(frompath, topath, opts) if recurse
|
234
|
+
|
235
|
+
if File.directory?(frompath)
|
236
|
+
raise ArgumentError, "#{frompath.inspect} is a directory and can only be put on the device using the 'recurse: true' option)"
|
237
|
+
end
|
238
|
+
|
194
239
|
wlen = 0
|
195
240
|
|
196
241
|
File.open(frompath, 'r') do |from|
|
data/lib/idevice/version.rb
CHANGED
data/spec/afc_devicespec.rb
CHANGED
@@ -208,7 +208,7 @@ describe Idevice::AFCClient do
|
|
208
208
|
|
209
209
|
begin
|
210
210
|
gotblock=false
|
211
|
-
@afc.put_path(@fromfile.to_s, remotepath, 2) do |chunksz|
|
211
|
+
@afc.put_path(@fromfile.to_s, remotepath, chunksize: 2) do |chunksz|
|
212
212
|
gotblock=true
|
213
213
|
(0..2).should include(chunksz)
|
214
214
|
end.should == @fromfile.size
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: idevice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.5.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.5.8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Eric Monti
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-01-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: ffi
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: plist
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bundler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rspec
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: pry
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ! '>='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ! '>='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -180,33 +167,26 @@ files:
|
|
180
167
|
homepage: https://github.com/blueboxsecurity/idevice
|
181
168
|
licenses:
|
182
169
|
- Apache License, Version 2.0
|
170
|
+
metadata: {}
|
183
171
|
post_install_message:
|
184
172
|
rdoc_options: []
|
185
173
|
require_paths:
|
186
174
|
- lib
|
187
175
|
required_ruby_version: !ruby/object:Gem::Requirement
|
188
|
-
none: false
|
189
176
|
requirements:
|
190
177
|
- - ! '>='
|
191
178
|
- !ruby/object:Gem::Version
|
192
179
|
version: '0'
|
193
|
-
segments:
|
194
|
-
- 0
|
195
|
-
hash: 3300865769966044297
|
196
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
197
|
-
none: false
|
198
181
|
requirements:
|
199
182
|
- - ! '>='
|
200
183
|
- !ruby/object:Gem::Version
|
201
184
|
version: '0'
|
202
|
-
segments:
|
203
|
-
- 0
|
204
|
-
hash: 3300865769966044297
|
205
185
|
requirements: []
|
206
186
|
rubyforge_project:
|
207
|
-
rubygems_version:
|
187
|
+
rubygems_version: 2.2.1
|
208
188
|
signing_key:
|
209
|
-
specification_version:
|
189
|
+
specification_version: 4
|
210
190
|
summary: Ruby FFI bindings for libimobiledevice. The ruby Idevice library was written
|
211
191
|
primarily as a research tool for prototyping iOS tools that use USB as well as a
|
212
192
|
tool to aid in reverse-engineering new areas of the iOS USB protocols.
|