adb_extended 0.2.0 → 0.3.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
  SHA256:
3
- metadata.gz: 1599ab3d60114cbd6e6c48ea80cf87c840bf719b752f38d65da6f3abcdaa98c8
4
- data.tar.gz: 2d217e928850bb01a2ce8bc0ebc6a4c3b4e62989b1cfdb7eccfaf084c5db5a2e
3
+ metadata.gz: 43bbb6dc08cda79edf091a126e7e6070006cd1fccf66fe7379d70cb73e219b35
4
+ data.tar.gz: 7c395ad6517c506db2dd8794b36bb8c487d0befac4ee90eab1db588823d26614
5
5
  SHA512:
6
- metadata.gz: '090d7c40f6a85081ecf4af0a1111079c7e4f39faf758fc58b63549269cdd77a25b99f12e56602e73c68a8a6c4f00371c41de1657a1e6249815926f3a31c337c4'
7
- data.tar.gz: 304d95298c24c68945df3e18a06da2e05e77d427563b12828a410957f388226e994906c318642d6e27499225acca21141542a0f6ae139ff779e59c2aeb6c9010
6
+ metadata.gz: fdd50c71ccc1c1c44f089c1d505891119123c639837a96c0ff93f43e8eee6664b3baee842fd3040477191bfca4b89fb524450a27bfb6b7d888b3261c71d23abf
7
+ data.tar.gz: 573197d5c48237bc1c8830a69adf93b1118ff500082e2c8bb04e3d72d5bb78a2933eef9f97f93a17e43a4a36131e17cdd14b652b5d2f8f75bbe26bc3d2072f0a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- adb_extended (0.1.0)
4
+ adb_extended (0.3.0)
5
5
  terminal-table
6
6
  thor
7
7
 
@@ -38,4 +38,4 @@ DEPENDENCIES
38
38
  rspec (~> 3.0)
39
39
 
40
40
  BUNDLED WITH
41
- 1.16.3
41
+ 1.16.5
@@ -81,6 +81,18 @@ module AdbExtended
81
81
  end
82
82
  end
83
83
 
84
+ def self.enter_text(text, submit = false, serial = nil)
85
+ key_event = submit ? 66 : 61
86
+ if serial != nil
87
+ stdout, stderr, status = Open3.capture3("adb -s #{serial} shell input text #{text} && adb -s #{serial} shell input keyevent #{key_event}")
88
+ else
89
+ devices.each { |device|
90
+ stdout, stderr, status = Open3.capture3("adb -s #{device[:serial]} shell input text #{text} && adb -s #{device[:serial]} shell input keyevent #{key_event}")
91
+ }
92
+ end
93
+ sleep 0.1
94
+ end
95
+
84
96
  def self.screenshot(serial = nil)
85
97
  t = Time.now
86
98
  timestamp = t.strftime("%Y%m%d-%H%M%S")
@@ -1,6 +1,10 @@
1
1
  require 'thor'
2
2
  require 'terminal-table'
3
3
  require 'adb_extended'
4
+ require 'yaml'
5
+ require 'fileutils'
6
+
7
+ $configuration_file_dir = File.expand_path("~/.adb_extended")
4
8
 
5
9
  module AdbExtended
6
10
  class CLI < Thor
@@ -42,6 +46,67 @@ module AdbExtended
42
46
  AdbExtended::Adb.shell(serial)
43
47
  end
44
48
 
49
+ desc "login", "Allows entry of usernames and passwords and will inject it into the login screen of the selected device"
50
+ method_options :all => :boolean
51
+ def login()
52
+
53
+ # Get the username/password
54
+ # Show the list of existing usernames/passwords
55
+
56
+ user_file_path = "#{$configuration_file_dir}/app_users.yml"
57
+
58
+ create_config_file(user_file_path)
59
+
60
+ users = YAML.load_file(user_file_path)
61
+
62
+ unless users
63
+ users = {}
64
+ end
65
+
66
+ table = Terminal::Table.new do |t|
67
+ header_row = %w(# Username)
68
+
69
+ t << header_row
70
+ t << :separator
71
+ if users.size > 0
72
+ users.each_with_index {|(key, value), index|
73
+ row = [index + 1, value[:username]]
74
+ t.add_row row
75
+ }
76
+ end
77
+
78
+ row = [users.size + 1, "Add new user"]
79
+ t.add_row row
80
+ end
81
+
82
+ puts table
83
+
84
+ accepted_inputs = *(1..users.size + 1).map {|i| i.to_s}
85
+ index = ask("Select an account to login (1 - #{users.size + 1}):", :limited_to => accepted_inputs).to_i - 1
86
+
87
+ if index > users.size - 1
88
+ # Create new user and save it or overwrite existing user
89
+ username = ask("Enter a username:")
90
+ password = ask("Enter a password:")
91
+
92
+ users[username] = {:username => username, :password => password}
93
+
94
+ File.open(user_file_path, "w") { |file| file.write(users.to_yaml) }
95
+ user = users[username]
96
+ else
97
+ user = users[users.keys[index]]
98
+ end
99
+
100
+ if options.all
101
+ AdbExtended::Adb.enter_text(user[:username], false)
102
+ AdbExtended::Adb.enter_text(user[:password], true)
103
+ else
104
+ device = pick_device
105
+ AdbExtended::Adb.enter_text(user[:username], false, device)
106
+ AdbExtended::Adb.enter_text(user[:password], true, device)
107
+ end
108
+ end
109
+
45
110
  desc "pidcat PACKAGE", "Lists the devices and allows you to choose one to run with pidcat"
46
111
  method_option :level, :default => 'd', :enum => %w(V D I W E F v d i w e f), :aliases => '-l'
47
112
  def pidcat(package = nil)
@@ -123,5 +188,13 @@ module AdbExtended
123
188
  devices[index][:serial]
124
189
  end
125
190
 
191
+ def create_config_file(path)
192
+ dirname = File.dirname(path)
193
+ unless File.directory?(dirname)
194
+ FileUtils.mkdir_p(dirname)
195
+ end
196
+ File.open(path, 'a+')
197
+ end
198
+
126
199
  end
127
200
  end
@@ -1,3 +1,3 @@
1
1
  module AdbExtended
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adb_extended
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Gilbert
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-03 00:00:00.000000000 Z
11
+ date: 2018-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler