class FIR::Parser::Apk

Public Class Methods

new(path) click to toggle source
# File lib/fir/util/parser/apk.rb, line 9
def initialize(path)
  Zip.warn_invalid_date = false
  @apk = ::Android::Apk.new(path)
end

Public Instance Methods

basic_info() click to toggle source
# File lib/fir/util/parser/apk.rb, line 20
def basic_info
  @basic_info ||= {
    type: 'android',
    name: fetch_label,
    identifier: @apk.manifest.package_name,
    build: @apk.manifest.version_code.to_s,
    version: @apk.manifest.version_name.to_s
  }
  @basic_info.reject! { |_k, v| v.nil? }
  @basic_info
end
fetch_label() click to toggle source
# File lib/fir/util/parser/apk.rb, line 39
def fetch_label
  @apk.label
rescue NoMethodError
  nil
end
full_info(options) click to toggle source
# File lib/fir/util/parser/apk.rb, line 14
def full_info(options)
  basic_info[:icons] = tmp_icons if options.fetch(:full_info, false)

  basic_info
end
tmp_icons() click to toggle source

@apk.icon is a hash, { icon_name: icon_binary_data }

# File lib/fir/util/parser/apk.rb, line 33
def tmp_icons
  @apk.icon.map { |_, data| generate_tmp_icon(data, :apk) }
rescue StandardError
  []
end