apkToJava 0.0.1 → 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|