module ApkToJava::Operations

Constants

TEMP_DIR

Public Instance Methods

clean_up() click to toggle source
# File lib/apk_to_java.rb, line 60
def clean_up
  print_info 'Cleaning the mess..'
  `rm -rf #{TEMP_DIR}`
  print_success 'done!'
end
convert_to_dex(apk) click to toggle source
# File lib/apk_to_java.rb, line 70
def convert_to_dex(apk)
  print_info 'Converting to dex..'
  copy_apk apk
  apk_name = apk.split('/').last.split('.').first
  unzip apk_name
  print_success 'Done!'
  path_to_dex
end
copy_apk(apk) click to toggle source
# File lib/apk_to_java.rb, line 38
def copy_apk(apk)
  `mkdir #{TEMP_DIR}`
  `cp #{apk} #{TEMP_DIR}/`
end
create_jar(dex_file) click to toggle source
# File lib/apk_to_java.rb, line 52
def create_jar(dex_file)
  `#{supported_os.dex2jar} #{dex_file} --force`
end
dex_to_jar(apk) click to toggle source
# File lib/apk_to_java.rb, line 79
def dex_to_jar(apk)
  dex_file = convert_to_dex apk
  print_info 'Converting dex to jar..'
  create_jar dex_file
  print_success 'Done!'
  path_to_jar
end
open_code_in_gui(jar_file) click to toggle source
# File lib/apk_to_java.rb, line 66
def open_code_in_gui(jar_file)
  `#{supported_os.jadx}  #{jar_file} > /dev/null 2>&1 & disown`
end
path_to_dex() click to toggle source
# File lib/apk_to_java.rb, line 48
def path_to_dex
  `pwd`.chomp + "/#{TEMP_DIR}/classes.dex"
end
path_to_jar() click to toggle source
# File lib/apk_to_java.rb, line 56
def path_to_jar
  `pwd`.chomp + '/classes-dex2jar.jar'
end
unzip(apk_name) click to toggle source
# File lib/apk_to_java.rb, line 43
def unzip(apk_name)
  `mv #{TEMP_DIR}/#{apk_name}.apk #{TEMP_DIR}/#{apk_name}.zip`
  `unzip #{TEMP_DIR}/#{apk_name}.zip -d #{TEMP_DIR}/`
end
view_as_java_code(apk) click to toggle source
# File lib/apk_to_java.rb, line 87
def view_as_java_code(apk)
  jar_file = dex_to_jar apk
  clean_up
  print_info 'Opening in gui interface..'
  print_success 'Please be patient, apkToJava might take some time to load your project in gui interface'
  open_code_in_gui jar_file
end