apkToJava 0.0.1 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/apkToJava.gemspec +1 -1
- data/bin/apkToJava +1 -1
- data/lib/apk_to_java.rb +24 -35
- data/lib/apk_to_java/linux_setup.rb +31 -0
- data/lib/apk_to_java/mac_setup.rb +29 -0
- data/lib/apk_to_java/os.rb +19 -0
- data/lib/apk_to_java/setup.rb +21 -0
- data/lib/apk_to_java/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9a266815a457f801809d3163b89d7bb2fda3d63
|
4
|
+
data.tar.gz: 5c54918132eedb04727fa3ed14e99bef7a054e38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9af7d94ec4b2153d28247498d8fe967fd96ba264655e41692f88cccff19c1f2c51f8beab856da08149e1682e81ab9ad2b905a0d92237a1cf4168f914aa4d4034
|
7
|
+
data.tar.gz: 21abd3dde26cfa3f72784f229925dcb89f9f9244270a48710932fd12056557c6f419cf53f375e6ce73c201edc94a2fd8a5e5bc82d8f8288edf627e81c745003d
|
data/apkToJava.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.name = 'apkToJava'
|
8
8
|
s.version = ApkToJava::VERSION
|
9
9
|
s.date = '2016-01-28'
|
10
|
-
s.summary = 'View android apk as
|
10
|
+
s.summary = 'View android apk as java code in GUI'
|
11
11
|
s.description = s.summary
|
12
12
|
s.authors = ['Ajit Singh']
|
13
13
|
s.email = 'jeetsingh.ajit@gamil.com'
|
data/bin/apkToJava
CHANGED
data/lib/apk_to_java.rb
CHANGED
@@ -1,45 +1,39 @@
|
|
1
1
|
require_relative 'apk_to_java/pretty_printer'
|
2
|
+
require_relative 'apk_to_java/mac_setup'
|
3
|
+
require_relative 'apk_to_java/linux_setup'
|
4
|
+
require_relative 'apk_to_java/os'
|
2
5
|
|
3
6
|
module ApkToJava
|
4
7
|
include ApkToJava::PrettyPrinter
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
print_success "Done!"
|
13
|
-
end
|
14
|
-
|
15
|
-
def install_jadx
|
16
|
-
print_info("Installing jadx..")
|
17
|
-
`cd /usr/local/Cellar && wget https://github.com/skylot/jadx/releases/download/v0.6.0/jadx-0.6.0.zip && unzip jadx-0.6.0.zip -d jadx/ && rm jadx-0.6.0.zip && cd -`
|
18
|
-
print_success "Done!"
|
19
|
-
end
|
20
|
-
|
21
|
-
def jadx_installed?
|
22
|
-
File.exists? ApkToJava::JADX
|
8
|
+
module EnvSetup
|
9
|
+
def supported_os
|
10
|
+
if ApkToJava::OS.mac?
|
11
|
+
ApkToJava::MacSetup.new
|
12
|
+
elsif ApkToJava::OS.linux?
|
13
|
+
ApkToJava::LinuxSetup.new
|
14
|
+
end
|
23
15
|
end
|
24
16
|
|
25
|
-
def
|
26
|
-
|
17
|
+
def initialize_setup
|
18
|
+
print_info("Initializing setup!!")
|
19
|
+
os = supported_os
|
20
|
+
if !os.nil?
|
21
|
+
os.install_dex2jar if !os.dex_to_jar_installed?
|
22
|
+
os.install_jadx if !os.jadx_installed?
|
23
|
+
print_success("Setup done :)")
|
24
|
+
else
|
25
|
+
print_error "Sorry! apkToJava supports only MAC and Linux"
|
26
|
+
end
|
27
27
|
end
|
28
28
|
|
29
29
|
def env_setup?
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
def initialize_setup
|
34
|
-
print_info("Initializing setup!!")
|
35
|
-
install_dex2jar if !dex_to_jar_installed?
|
36
|
-
install_jadx if !jadx_installed?
|
37
|
-
print_success("Setup done :)")
|
30
|
+
supported_os.env_setup?
|
38
31
|
end
|
39
32
|
end
|
40
33
|
|
41
34
|
module Operations
|
42
35
|
TEMP_DIR = 'apkToJavaTmp'
|
36
|
+
include ApkToJava::EnvSetup
|
43
37
|
|
44
38
|
def copy_apk(apk)
|
45
39
|
`mkdir #{TEMP_DIR}`
|
@@ -51,16 +45,12 @@ module ApkToJava
|
|
51
45
|
`unzip #{TEMP_DIR}/#{apk_name}.zip -d #{TEMP_DIR}/`
|
52
46
|
end
|
53
47
|
|
54
|
-
def create_dex
|
55
|
-
`#{ApkToJava::DEX_TO_JAR} #{TEMP_DIR}/classes.dex`
|
56
|
-
end
|
57
|
-
|
58
48
|
def path_to_dex
|
59
49
|
`pwd`.chomp + "/#{TEMP_DIR}/classes.dex"
|
60
50
|
end
|
61
51
|
|
62
52
|
def create_jar(dex_file)
|
63
|
-
`#{
|
53
|
+
`#{supported_os.dex2jar} #{dex_file} --force`
|
64
54
|
end
|
65
55
|
|
66
56
|
def path_to_jar
|
@@ -74,7 +64,7 @@ module ApkToJava
|
|
74
64
|
end
|
75
65
|
|
76
66
|
def open_code_in_gui(jar_file)
|
77
|
-
`#{
|
67
|
+
`#{supported_os.jadx} #{jar_file} &`
|
78
68
|
end
|
79
69
|
|
80
70
|
def convert_to_dex(apk)
|
@@ -82,7 +72,6 @@ module ApkToJava
|
|
82
72
|
copy_apk apk
|
83
73
|
apk_name = apk.split('/').last.split('.').first
|
84
74
|
unzip apk_name
|
85
|
-
create_dex
|
86
75
|
print_success "Done!"
|
87
76
|
path_to_dex
|
88
77
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module ApkToJava
|
2
|
+
class LinuxSetup < Setup
|
3
|
+
DEX_TO_JAR_URL = "'https://drive.google.com/uc?id=0BxXHKToe2BBtbmJocnE0SlhNNXc&export=download'"
|
4
|
+
DEX_TO_JAR = '/lib/dex2jar/dex2jar-0.0.9.15/d2j-dex2jar.sh'
|
5
|
+
JADX = '/lib/jadx/bin/jadx-gui'
|
6
|
+
|
7
|
+
def dex2jar
|
8
|
+
"sudo sh " + DEX_TO_JAR
|
9
|
+
end
|
10
|
+
|
11
|
+
def jadx
|
12
|
+
JADX
|
13
|
+
end
|
14
|
+
|
15
|
+
def download_dex2jar
|
16
|
+
"wget --no-check-certificate #{DEX_TO_JAR_URL} -O dex2jar.zip && sudo unzip dex2jar.zip -d dex2jar && rm dex2jar.zip"
|
17
|
+
end
|
18
|
+
|
19
|
+
def install_dex2jar
|
20
|
+
print_info("Installing dex2jar..")
|
21
|
+
`cd /lib && sudo #{download_dex2jar} && cd -`
|
22
|
+
print_success "Done!"
|
23
|
+
end
|
24
|
+
|
25
|
+
def install_jadx
|
26
|
+
print_info("Installing jadx..")
|
27
|
+
`cd /lib && sudo #{download_jadx} && cd -`
|
28
|
+
print_success "Done!"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative './setup.rb'
|
2
|
+
|
3
|
+
module ApkToJava
|
4
|
+
class MacSetup < Setup
|
5
|
+
DEX_TO_JAR = '/usr/local/Cellar/dex2jar/2.0/bin/d2j-dex2jar'
|
6
|
+
JADX = '/usr/local/Cellar/jadx/bin/jadx-gui'
|
7
|
+
|
8
|
+
def install_dex2jar
|
9
|
+
print_info("Installing dex2jar..")
|
10
|
+
`ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null`
|
11
|
+
`brew install dex2jar`
|
12
|
+
print_success "Done!"
|
13
|
+
end
|
14
|
+
|
15
|
+
def dex2jar
|
16
|
+
DEX_TO_JAR
|
17
|
+
end
|
18
|
+
|
19
|
+
def jadx
|
20
|
+
JADX
|
21
|
+
end
|
22
|
+
|
23
|
+
def install_jadx
|
24
|
+
print_info("Installing jadx..")
|
25
|
+
`cd /usr/local/Cellar && #{download_jadx} && cd -`
|
26
|
+
print_success "Done!"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module ApkToJava
|
2
|
+
module OS
|
3
|
+
def OS.windows?
|
4
|
+
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
5
|
+
end
|
6
|
+
|
7
|
+
def OS.mac?
|
8
|
+
(/darwin/ =~ RUBY_PLATFORM) != nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def OS.unix?
|
12
|
+
!OS.windows?
|
13
|
+
end
|
14
|
+
|
15
|
+
def OS.linux?
|
16
|
+
OS.unix? and not OS.mac?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module ApkToJava
|
2
|
+
class Setup
|
3
|
+
JADX_URL = "'https://drive.google.com/uc?id=0BxXHKToe2BBtMGZMQXR5NFhGSUE&export=download'"
|
4
|
+
|
5
|
+
def download_jadx
|
6
|
+
"wget --no-check-certificate #{JADX_URL} -O jadx.zip && sudo unzip jadx.zip -d jadx/ && rm jadx.zip"
|
7
|
+
end
|
8
|
+
|
9
|
+
def jadx_installed?
|
10
|
+
File.exists? self.class::JADX
|
11
|
+
end
|
12
|
+
|
13
|
+
def dex_to_jar_installed?
|
14
|
+
File.exists? self.class::DEX_TO_JAR
|
15
|
+
end
|
16
|
+
|
17
|
+
def env_setup?
|
18
|
+
dex_to_jar_installed? && jadx_installed?
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/apk_to_java/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apkToJava
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: '1.0'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ajit Singh
|
@@ -10,7 +10,7 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2016-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: View android apk as
|
13
|
+
description: View android apk as java code in GUI
|
14
14
|
email: jeetsingh.ajit@gamil.com
|
15
15
|
executables:
|
16
16
|
- apkToJava
|
@@ -22,7 +22,11 @@ files:
|
|
22
22
|
- apkToJava.gemspec
|
23
23
|
- bin/apkToJava
|
24
24
|
- lib/apk_to_java.rb
|
25
|
+
- lib/apk_to_java/linux_setup.rb
|
26
|
+
- lib/apk_to_java/mac_setup.rb
|
27
|
+
- lib/apk_to_java/os.rb
|
25
28
|
- lib/apk_to_java/pretty_printer.rb
|
29
|
+
- lib/apk_to_java/setup.rb
|
26
30
|
- lib/apk_to_java/version.rb
|
27
31
|
homepage: https://github.com/ajitsing/apkToJava
|
28
32
|
licenses:
|
@@ -47,5 +51,5 @@ rubyforge_project:
|
|
47
51
|
rubygems_version: 2.2.2
|
48
52
|
signing_key:
|
49
53
|
specification_version: 4
|
50
|
-
summary: View android apk as
|
54
|
+
summary: View android apk as java code in GUI
|
51
55
|
test_files: []
|