pwn 0.5.531 → 0.5.532
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/README.md +3 -3
- data/lib/pwn/sdr/decoder/pocsag.rb +6 -3
- data/lib/pwn/sdr/decoder/rds.rb +7 -0
- data/lib/pwn/sdr/frequency_allocation.rb +23 -1
- data/lib/pwn/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1ac373c33f4440155c8497862905fccff4a379c9ead0e5db1aa47f3239cbb5f3
|
|
4
|
+
data.tar.gz: 23a97347a0f5cf48a8c29ba9c06a0e946cb27976b2c9d3b224e025d20e48447a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 49124cf7885e5208523b3c9cd03f7f033e05121abb21dd2087cbebe67dc9924753e5cd4758fb0a3cc9aa49c39fd0da952be85d31b37127acba419fad792fb6e5
|
|
7
|
+
data.tar.gz: dc46bce0905a436a7395f0d1c04dd4b69af82f44d3970dda76232466090f736eaee6cf40aed0dc5b4fb15114c7a0d4492044cc88422faa76f57ea72ca582148c
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ $ cd /opt/pwn
|
|
|
37
37
|
$ ./install.sh
|
|
38
38
|
$ ./install.sh ruby-gem
|
|
39
39
|
$ pwn
|
|
40
|
-
pwn[v0.5.
|
|
40
|
+
pwn[v0.5.532]:001 >>> PWN.help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
|
@@ -52,7 +52,7 @@ $ rvm use ruby-4.0.0@pwn
|
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
|
53
53
|
$ gem install --verbose pwn
|
|
54
54
|
$ pwn
|
|
55
|
-
pwn[v0.5.
|
|
55
|
+
pwn[v0.5.532]:001 >>> PWN.help
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
If you're using a multi-user install of RVM do:
|
|
@@ -62,7 +62,7 @@ $ rvm use ruby-4.0.0@pwn
|
|
|
62
62
|
$ rvmsudo gem uninstall --all --executables pwn
|
|
63
63
|
$ rvmsudo gem install --verbose pwn
|
|
64
64
|
$ pwn
|
|
65
|
-
pwn[v0.5.
|
|
65
|
+
pwn[v0.5.532]:001 >>> PWN.help
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
|
|
@@ -14,6 +14,7 @@ module PWN
|
|
|
14
14
|
# )
|
|
15
15
|
|
|
16
16
|
public_class_method def self.decode(opts = {})
|
|
17
|
+
puts 'IM HERE'
|
|
17
18
|
freq_obj = opts[:freq_obj]
|
|
18
19
|
gqrx_sock = freq_obj[:gqrx_sock]
|
|
19
20
|
record_path = freq_obj[:record_path]
|
|
@@ -63,7 +64,7 @@ module PWN
|
|
|
63
64
|
last_resp = {}
|
|
64
65
|
|
|
65
66
|
loop do
|
|
66
|
-
current_wav_size = File.size?(record_path)
|
|
67
|
+
current_wav_size = File.size?(record_path) || 0
|
|
67
68
|
pocsag_resp = {}
|
|
68
69
|
|
|
69
70
|
# Only update when we have valid new data
|
|
@@ -73,7 +74,7 @@ module PWN
|
|
|
73
74
|
new_bytes -= new_bytes % 8
|
|
74
75
|
data = File.binread(record_path, new_bytes, bytes_read)
|
|
75
76
|
|
|
76
|
-
msg =
|
|
77
|
+
msg = 'DECODED DATA'
|
|
77
78
|
|
|
78
79
|
spinner.update(decoding: msg)
|
|
79
80
|
last_resp = pocsag_resp.dup
|
|
@@ -95,13 +96,15 @@ module PWN
|
|
|
95
96
|
spinner.error('Decoding failed') if defined?(spinner)
|
|
96
97
|
raise e
|
|
97
98
|
ensure
|
|
98
|
-
|
|
99
|
+
# Toggle POCSAG off and on to reset the decoder
|
|
99
100
|
PWN::SDR::GQRX.cmd(
|
|
100
101
|
gqrx_sock: gqrx_sock,
|
|
101
102
|
cmd: 'U RECORD 0',
|
|
102
103
|
resp_ok: 'RPRT 0'
|
|
103
104
|
)
|
|
104
105
|
|
|
106
|
+
File.unlink(record_path)
|
|
107
|
+
|
|
105
108
|
spinner.stop if defined?(spinner) && spinner
|
|
106
109
|
end
|
|
107
110
|
|
data/lib/pwn/sdr/decoder/rds.rb
CHANGED
|
@@ -108,6 +108,13 @@ module PWN
|
|
|
108
108
|
spinner.error('Decoding failed') if defined?(spinner)
|
|
109
109
|
raise e
|
|
110
110
|
ensure
|
|
111
|
+
# Toggle RDS off and on to reset the decoder
|
|
112
|
+
PWN::SDR::GQRX.cmd(
|
|
113
|
+
gqrx_sock: gqrx_sock,
|
|
114
|
+
cmd: 'U RDS 0',
|
|
115
|
+
resp_ok: 'RPRT 0'
|
|
116
|
+
)
|
|
117
|
+
|
|
111
118
|
spinner.stop if defined?(spinner) && spinner
|
|
112
119
|
end
|
|
113
120
|
|
|
@@ -417,7 +417,7 @@ module PWN
|
|
|
417
417
|
bandwidth: '16.000',
|
|
418
418
|
precision: 4
|
|
419
419
|
},
|
|
420
|
-
|
|
420
|
+
pager_all: {
|
|
421
421
|
ranges: [
|
|
422
422
|
# Low-power / unlicensed / CB-related (very limited POCSAG usage)
|
|
423
423
|
# RCRS channels (shared data/telemetry, occasional POCSAG)
|
|
@@ -449,6 +449,28 @@ module PWN
|
|
|
449
449
|
],
|
|
450
450
|
demodulator_mode: :FM,
|
|
451
451
|
bandwidth: '25.000',
|
|
452
|
+
precision: 4
|
|
453
|
+
},
|
|
454
|
+
pager_pocsag: {
|
|
455
|
+
ranges: [
|
|
456
|
+
# High-band VHF paging — most common for public-safety POCSAG today
|
|
457
|
+
# Classic VHF paging band (152/157/158 MHz very common)
|
|
458
|
+
{ start_freq: '152.000.000', target_freq: '159.000.000' },
|
|
459
|
+
|
|
460
|
+
# UHF paging bands (hospital, on-site, restaurant/coaster pagers, some public safety)
|
|
461
|
+
# UHF low — occasional private systems
|
|
462
|
+
{ start_freq: '400.000.000', target_freq: '430.000.000' },
|
|
463
|
+
# UHF high — very common for local POCSAG (incl. 450–470 & 467.xxx for on-site)
|
|
464
|
+
{ start_freq: '440.000.000', target_freq: '470.000.000' },
|
|
465
|
+
# Classic UHF paging allocation (454/459 MHz pairs — many reallocated)
|
|
466
|
+
{ start_freq: '454.000.000', target_freq: '460.000.000' },
|
|
467
|
+
|
|
468
|
+
# 900 MHz exclusive paging band (mostly FLEX, but some legacy POCSAG remains)
|
|
469
|
+
# Primary nationwide commercial paging band
|
|
470
|
+
{ start_freq: '929.000.000', target_freq: '932.000.000' }
|
|
471
|
+
],
|
|
472
|
+
demodulator_mode: :FM,
|
|
473
|
+
bandwidth: '25.000',
|
|
452
474
|
precision: 4,
|
|
453
475
|
decoder: :pocsag
|
|
454
476
|
},
|
data/lib/pwn/version.rb
CHANGED