adb_extended 0.2.0 → 0.3.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/Gemfile.lock +2 -2
- data/lib/adb_extended/adb.rb +12 -0
- data/lib/adb_extended/cli.rb +73 -0
- data/lib/adb_extended/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43bbb6dc08cda79edf091a126e7e6070006cd1fccf66fe7379d70cb73e219b35
|
4
|
+
data.tar.gz: 7c395ad6517c506db2dd8794b36bb8c487d0befac4ee90eab1db588823d26614
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdd50c71ccc1c1c44f089c1d505891119123c639837a96c0ff93f43e8eee6664b3baee842fd3040477191bfca4b89fb524450a27bfb6b7d888b3261c71d23abf
|
7
|
+
data.tar.gz: 573197d5c48237bc1c8830a69adf93b1118ff500082e2c8bb04e3d72d5bb78a2933eef9f97f93a17e43a4a36131e17cdd14b652b5d2f8f75bbe26bc3d2072f0a
|
data/Gemfile.lock
CHANGED
data/lib/adb_extended/adb.rb
CHANGED
@@ -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")
|
data/lib/adb_extended/cli.rb
CHANGED
@@ -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
|
data/lib/adb_extended/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2018-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|