Module: ApkToJava::Operations
- Includes:
- EnvSetup
- Defined in:
- lib/apk_to_java.rb
Constant Summary
collapse
- TEMP_DIR =
'apkToJavaTmp'
Instance Method Summary
collapse
Methods included from EnvSetup
#env_setup?, #initialize_setup, #supported_os
Instance Method Details
#clean_up ⇒ Object
60
61
62
63
64
|
# 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) ⇒ Object
70
71
72
73
74
75
76
77
|
# 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) ⇒ Object
38
39
40
41
|
# File 'lib/apk_to_java.rb', line 38
def copy_apk(apk)
`mkdir #{TEMP_DIR}`
`cp #{apk} #{TEMP_DIR}/`
end
|
#create_jar(dex_file) ⇒ Object
52
53
54
|
# File 'lib/apk_to_java.rb', line 52
def create_jar(dex_file)
`#{supported_os.dex2jar} #{dex_file} --force`
end
|
#dex_to_jar(apk) ⇒ Object
79
80
81
82
83
84
85
|
# 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) ⇒ Object
66
67
68
|
# 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 ⇒ Object
48
49
50
|
# File 'lib/apk_to_java.rb', line 48
def path_to_dex
`pwd`.chomp + "/#{TEMP_DIR}/classes.dex"
end
|
#path_to_jar ⇒ Object
56
57
58
|
# File 'lib/apk_to_java.rb', line 56
def path_to_jar
`pwd`.chomp + '/classes-dex2jar.jar'
end
|
#unzip(apk_name) ⇒ Object
43
44
45
46
|
# 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) ⇒ Object
87
88
89
90
91
92
93
|
# 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
|