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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a1c7e769b3f6557281ab944d2fca67f28b35f1f
4
- data.tar.gz: 6654d7f23bafa4f3909ed72060f98c5045e4b273
3
+ metadata.gz: d9a266815a457f801809d3163b89d7bb2fda3d63
4
+ data.tar.gz: 5c54918132eedb04727fa3ed14e99bef7a054e38
5
5
  SHA512:
6
- metadata.gz: 236c01ab63ac641ffcea291b0fcc8f3b4f8e5ec9957e79668fa1970ccdc3d06b248fe1a2184996b25477ff39ad78ea77db43b071fb7e16ca913978da75c953ed
7
- data.tar.gz: ab0c1ba80f63b1e59dabc8a02990cdb3f17b111e043db433caa66c69adf6cd5e6a75f0a861f48a27f9f2446d0fe68027e4f61c6903f4fc5e8e79ab3f93b00a70
6
+ metadata.gz: 9af7d94ec4b2153d28247498d8fe967fd96ba264655e41692f88cccff19c1f2c51f8beab856da08149e1682e81ab9ad2b905a0d92237a1cf4168f914aa4d4034
7
+ data.tar.gz: 21abd3dde26cfa3f72784f229925dcb89f9f9244270a48710932fd12056557c6f419cf53f375e6ce73c201edc94a2fd8a5e5bc82d8f8288edf627e81c745003d
@@ -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 as java in GUI'
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'
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative '../lib/apk_to_java.rb'
4
4
  include ApkToJava::Operations
5
- include ApkToJava::Setup
5
+ include ApkToJava::EnvSetup
6
6
  include ApkToJava::PrettyPrinter
7
7
 
8
8
  def apk_exists?
@@ -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
- DEX_TO_JAR = '/usr/local/Cellar/dex2jar/2.0/bin/d2j-dex2jar'
6
- JADX = '/usr/local/Cellar/jadx/bin/jadx-gui'
7
-
8
- module Setup
9
- def install_dex2jar
10
- print_info("Installing dex2jar..")
11
- `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null && brew install dex2jar`
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 dex_to_jar_installed?
26
- File.exists? ApkToJava::DEX_TO_JAR
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
- dex_to_jar_installed? && jadx_installed?
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
- `#{ApkToJava::DEX_TO_JAR} #{dex_file} --force`
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
- `#{ApkToJava::JADX} #{jar_file} &`
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
@@ -1,3 +1,3 @@
1
1
  module ApkToJava
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0"
3
3
  end
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: 0.0.1
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 as java in GUI
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 as java in GUI
54
+ summary: View android apk as java code in GUI
51
55
  test_files: []