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 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: []