app-info 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 114f4899c399d6a4b8091b798a6089538b157eccba40c428ae36e445f79191d6
4
- data.tar.gz: 872061f173786d61f2dbad70a25405b71fc2b054ea023fb375394aed52febeeb
3
+ metadata.gz: 86293b5c7a18cc4acd04c091ca25cc6b09cb52a73f69733713fd48e64b967429
4
+ data.tar.gz: 1e66c39ada9c58553364bb96c36791e285886f5ecb235ec0f051e712afa26517
5
5
  SHA512:
6
- metadata.gz: 435e4ce4855c42b94a5ef6a9bd12e208765691ad4d2ba1f0da92eb251e6fe12ed9f9aaa95ec8ba5fd3f53b1b4ff664fb8e8a1764b32992c5c0be220e51344ce1
7
- data.tar.gz: 376b5e7ac14d0fa8a95d0bd0a6d2861532e937317ed3c6a1cea07bc3ebc7a4ac2b84b8648180a9ae298768e3b7e90335a055bf344a2a2f933a2106b2f853bb31
6
+ metadata.gz: 432e0afb55cd37c79938a4fbbfcc31df8d0f37c674018e467282e037dd2f1ad3a2e40639433aa1fb577d4da7d32aebf8d14dd9f05f02a9e050de638ea482dd6b
7
+ data.tar.gz: 453aeefda0e657cec97fc01527e3b796dffebbfd9f1760b3bfc7afd88b2f0596fe4d146c0c870fd3c9752d32577518c3a85dc1c8c77a6046a99e0f4439daa19d
@@ -31,12 +31,10 @@ jobs:
31
31
  fail-fast: false
32
32
  matrix:
33
33
  ruby: [ ruby-3.1, ruby-3.2, ruby-3.3 ]
34
- experimental: [false]
34
+ experimental: [ false ]
35
35
  include:
36
36
  - ruby: head
37
37
  experimental: true
38
- - ruby: truffleruby-head
39
- experimental: true
40
38
  steps:
41
39
  - uses: actions/checkout@v4
42
40
 
data/CHANGELOG.md CHANGED
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
9
9
 
10
10
  > List all changes before release a new version.
11
11
 
12
+ ## [3.3.0] (2024-11-27)
13
+
14
+ ### Added
15
+
16
+ - Add `.native_codes` method for Android. #[79](https://github.com/icyleaf/app-info/pull/79)
17
+
12
18
  ## [3.2.0] (2024-09-09)
13
19
 
14
20
  ### Added
@@ -361,7 +367,8 @@ Dropped Ruby 2.5 ~ 3.0 support (no changes required.).
361
367
 
362
368
  - Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
363
369
 
364
- [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.2.0..HEAD
370
+ [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.3.0..HEAD
371
+ [3.3.0]: https://github.com/icyleaf/app-info/compare/v3.2.0...v3.3.0
365
372
  [3.2.0]: https://github.com/icyleaf/app-info/compare/v3.1.4...v3.2.0
366
373
  [3.1.4]: https://github.com/icyleaf/app-info/compare/v3.1.2...v3.1.4
367
374
  [3.1.2]: https://github.com/icyleaf/app-info/compare/v3.1.0...v3.1.2
data/app_info.gemspec CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'uuidtools', '>= 2.1.5', '< 2.3.0'
31
31
  spec.add_dependency 'icns', '~> 0.2.0'
32
32
  spec.add_dependency 'pedump', '~> 0.6.2'
33
- spec.add_dependency 'google-protobuf', '>= 4.27.1', '< 5.0.0'
33
+ spec.add_dependency 'google-protobuf', '>= 4.27.5', '< 5.0.0'
34
34
 
35
35
  spec.add_development_dependency 'bundler', '>= 1.12'
36
36
  spec.add_development_dependency 'rake', '>= 10.0'
data/lib/app_info/aab.rb CHANGED
@@ -80,23 +80,33 @@ module AppInfo
80
80
  @components ||= manifest.components.transform_values
81
81
  end
82
82
 
83
+ # @param [String] base_path
84
+ # @return [Array<String>]
85
+ def native_codes(base_path: BASE_PATH)
86
+ @native_codes ||= zip.glob(::File.join(base_path, 'lib/**/*'))
87
+ .each_with_object([]) do |entry, obj|
88
+ lib = entry.name.split('/')[2]
89
+ obj << lib unless obj.include?(lib)
90
+ end
91
+ end
92
+
83
93
  def each_file
84
94
  zip.each do |entry|
85
95
  next unless entry.file?
86
96
 
87
- yield entry.name, @zip.read(entry)
97
+ yield entry.name, zip.read(entry)
88
98
  end
89
99
  end
90
100
 
91
101
  def read_file(name, base_path: BASE_PATH)
92
- content = @zip.read(entry(name, base_path: base_path))
102
+ content = zip.read(entry(name, base_path: base_path))
93
103
  return parse_binary_xml(content) if xml_file?(name)
94
104
 
95
105
  content
96
106
  end
97
107
 
98
108
  def entry(name, base_path: BASE_PATH)
99
- entry = @zip.find_entry(::File.join(base_path, name))
109
+ entry = zip.find_entry(::File.join(base_path, name))
100
110
  raise NotFoundError, "'#{name}'" if entry.nil?
101
111
 
102
112
  entry
@@ -136,6 +136,11 @@ module AppInfo
136
136
  not_implemented_error!(__method__)
137
137
  end
138
138
 
139
+ # @abstract Subclass and override {#native_codes} to implement.
140
+ def native_codes
141
+ not_implemented_error!(__method__)
142
+ end
143
+
139
144
  # @abstract Subclass and override {#zip} to implement.
140
145
  def zip
141
146
  not_implemented_error!(__method__)
data/lib/app_info/apk.rb CHANGED
@@ -59,6 +59,14 @@ module AppInfo
59
59
  components.select { |c| c.type == 'activity' }
60
60
  end
61
61
 
62
+ # @return [Array<String>]
63
+ def native_codes
64
+ @native_codes ||= zip.glob('lib/**/*').each_with_object([]) do |entry, obj|
65
+ lib = entry.name.split('/')[1]
66
+ obj << lib unless obj.include?(lib)
67
+ end
68
+ end
69
+
62
70
  # @return [::Android::Apk]
63
71
  def apk
64
72
  @apk ||= ::Android::Apk.new(@file)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppInfo
4
- VERSION = '3.2.0'
4
+ VERSION = '3.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app-info
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - icyleaf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-10 00:00:00.000000000 Z
11
+ date: 2024-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: CFPropertyList
@@ -192,7 +192,7 @@ dependencies:
192
192
  requirements:
193
193
  - - ">="
194
194
  - !ruby/object:Gem::Version
195
- version: 4.27.1
195
+ version: 4.27.5
196
196
  - - "<"
197
197
  - !ruby/object:Gem::Version
198
198
  version: 5.0.0
@@ -202,7 +202,7 @@ dependencies:
202
202
  requirements:
203
203
  - - ">="
204
204
  - !ruby/object:Gem::Version
205
- version: 4.27.1
205
+ version: 4.27.5
206
206
  - - "<"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 5.0.0
@@ -328,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
328
328
  - !ruby/object:Gem::Version
329
329
  version: '0'
330
330
  requirements: []
331
- rubygems_version: 3.5.9
331
+ rubygems_version: 3.5.16
332
332
  signing_key:
333
333
  specification_version: 4
334
334
  summary: Teardown tool for all most app, analysis metedata like version, name, icon