-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
528 lines (525 loc) · 38.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta content="Web based programmer utility for O.MG Devices" name="description">
<meta content="O.MG" name="author">
<title> O.MG Web Flasher </title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<link href="https://fonts.gstatic.com" rel="preconnect">
<!-- icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css">
<!--<link href="assets/icons/icon-57x57.png" rel="apple-touch-icon" sizes="57x57">
<link href="assets/icons/icon-60x60.png" rel="apple-touch-icon" sizes="60x60">-->
<link href="assets/icons/icon-72x72.png" rel="apple-touch-icon" sizes="72x72">
<link href="assets/icons/icon-76x76.png" rel="apple-touch-icon" sizes="76x76">
<!--<link href="assets/icons/icon-114x114.png" rel="apple-touch-icon" sizes="114x114">-->
<link href="assets/icons/icon-96x96.png" rel="icon" sizes="96x96" type="image/png">
<link href="assets/icons/icon-120x120.png" rel="apple-touch-icon" sizes="120x120">
<link href="assets/icons/icon-144x144.png" rel="apple-touch-icon" sizes="144x144">
<link href="assets/icons/icon-152x152.png" rel="apple-touch-icon" sizes="152x152">
<link href="assets/icons/icon-192x192.png" rel="apple-touch-icon" sizes="192x192">
<link href="assets/icons/icon-384x384.png" rel="apple-touch-icon" sizes="384x384">
<link href="assets/icons/icon-512x512.png" rel="apple-touch-icon" sizes="512x512">
<!--<link href="assets/icons/android-icon-192x192.png" rel="icon" sizes="192x192" type="image/png">
<link href="assets/icons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png">-->
<!--<link href="assets/icons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png">-->
<link href="/manifest.json" rel="manifest">
<meta content="#ffffff" name="msapplication-TileColor">
<meta content="assets/icons/icons-144x144.png" name="msapplication-TileImage">
<meta content="#ffffff" name="theme-color">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<!-- next -->
<script>
// Redirect to HTTPS if HTTP is requested.
if (window.location.protocol === 'http:') {
window.location.href = 'https:' + window.location.href.substring(5);
}
</script>
<!-- import the webpage's javascript file -->
<script src="js/utilities.js" defer></script>
<script src="js/esptool.js" defer></script>
<script src="js/script.js" defer></script>
</head>
<body>
<!-- CONTAINER -->
<div class="container d-flex align-items-center min-vh-100">
<div class="row g-0 justify-content-center">
<!-- TITLE -->
<div class="col-lg-4 offset-lg-1 mx-0 px-0 d-none d-lg-block d-xl-block d-xxl-block shadow-lg">
<div id="omg-info" class="carousel slide" data-bs-ride="carousel" data-bs-interval="10000">
<div class="carousel-inner">
<div class="carousel-item active">
<div class="d-block p-2">
<img src="assets/omgcable.png" class="w-100" alt="cable">
</div>
<div class="d-none d-md-block p-2">
<h5>OMG Web Flasher</h5>
<p>Setup is 3 simple steps! </p>
</div>
</div>
<!--<div class="carousel-item ">
<div class="d-block p-2">
<img src="assets/omgcable.png" class="w-100" alt="cable">
</div>
<div class="d-none d-md-block p-2">
<h5>OMG Plug</h5>
<p>Find the form factor that works for you! O.MG Devices come in a variety of form factors from cable to flash drive</p>
</div>
</div>
<div class="carousel-item">
<div class="d-block p-2">
<img src="assets/omgcable.png" class="w-100" alt="cable">
</div>
<div class="d-none d-md-block p-2">
<h5>DuckScript Support</h5>
<p>We support DuckScript on all of our products and also support several custom commands to allow you greater flexibility in your payloads.</p>
</div>
</div>-->
</div>
<!--<button class="carousel-control-prev" type="button" data-bs-target="#omg-info" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#omg-info" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>-->
</div>
</div>
<!-- FORMS -->
<div class="col-lg-7 mx-0 px-0 shadow-lg">
<div class="progress">
<div aria-valuemax="100" aria-valuemin="0" aria-valuenow="50" class="progress-bar progress-bar-striped d-none" style="width: 0%"></div>
</div>
<div id="qbox-container" class="p-4">
<div id="steps-container" class="p-5">
<div class="step" id="step-welcome">
<h2>O.MG Web Flasher</h2>
<p>This tool is used exclusively to flash firmware to O.MG Devices</p>
<div class="m-2 bg-white agreement-modal" id="agreement-modal">
<h4>Agreement</h4>
<p>O.MG Cable, O.MG Adapter, O.MG Plug, and O.MG UnBlocker are trademarks of Mischief Gadgets, LLC. Mischief Gadgets, LLC requires that all users read and accept the provisions of the Terms of Use Policy and the Privacy Policy prior to granting users any authorization to use pentesting hardware created by Mischief Gadgets, LLC and/or its affiliates. The Terms of Use Policy and the Privacy Policy can be found at https://o.mg.lol, and must be affirmatively consented to by users prior to using any pentesting hardware created by Mischief Gadgets, LLC and/or its affiliates (hereinafter referred to as “O.MG Devices”).
Reading and Accepting the Terms of Use and the Privacy Policy are REQUIRED CONSIDERATIONS for Mischief Gadgets, LLC and/or its affiliates granting users the right to use any O.MG Device. All persons are DENIED permission to use any O.MG Device, unless they read and affirmatively accept the Terms of Use Policy and the Privacy Policy located at https://o.mg.lol.</p>
<h4>Privacy Policy</h4>
<br/>
<p>All persons under the age of 18 are denied access to the website located at https://o.mg.lol, as well as denied authorization to use any O.MG Device. If you are under the age of 18, it is unlawful for you to visit, communicate, or interact with Mischief Gadgets, LLC and/or its affiliates in any manner. Mischief Gadgets, LLC and/or its affiliates specifically denies access to any individual that is covered by the Child Online Privacy Act (COPA) of 1998.</p>
<p>Mischief Gadgets, LLC and/or its affiliates reserve the right to deny access to any person or viewer for any reason. Under the provisions of this Privacy Policy, Mischief Gadgets, LLC and/or its affiliates are allowed to collect and store data and information for the purpose of exclusion, and for any other uses seen fit. </p>
<p>Mischief Gadgets, LLC and/or its affiliates have established safeguards to help prevent unauthorized access to or misuse of your information but cannot guarantee that your information will never be disclosed in a manner inconsistent with this Privacy Policy (for example, as a result of any unauthorized act by third parties that violate applicable law or our affiliates’ policies). To protect your privacy and security, we may use passwords or other technologies to register or authenticate you and enable you to take advantage of our services, and before granting access or making corrections to your information.
<p>Mischief Gadgets, LLC and/or its affiliates do not rent or sell your personally identifiable information (such as name, address, telephone number, and credit card information) to third parties for their marketing purposes.</p>
<p>This Privacy Policy may change from time to time. Users have an affirmative duty, as part of the consideration for permission to use O.MG Devices, to keep themselves informed of changes to this Privacy Policy. All changes to this Privacy Policy will be posted at https://o.mg.lol.</p>
<br/>
<h4>Terms of Use</h4>
<p>Pentesting hardware designed by Mischief Gadgets, LLC and/or its affiliates (hereinafter referred to as “O.MG Devices”) are network administration and pentesting tools used for authorized auditing and security analysis purposes only where permitted, subject to local and international laws where applicable. Users are solely responsible for compliance with all laws of their locality. Mischief Gadgets, LLC and/or its affiliates claim no responsibility for unauthorized or unlawful use.</p>
<p>O.MG Devices are packaged with a limited warranty, the acceptance of which is a condition of sale. See https://o.mg.lol for additional warranty details and limitations. Availability and performance of certain features, services, and applications are device and network dependent and may not be available in all areas; additional terms, conditions and/or charges may apply. </p>
<p>You agree not to access or use any O.MG Device or the website located at https://o.mg.lol in any unlawful way or for any unlawful or illegitimate purpose or in any manner that contravenes this Agreement. You shall not use any O.MG Device to post, use, store, or transmit any information that is unlawful, libelous, defamatory, obscene, fraudulent, predatory of minors, harassing, threatening or hateful towards any individual, this includes any information that infringes or violates any of the intellectual property rights of others or the privacy rights of others. You shall not use any O.MG Device to attempt to disturb the peace by any method, including through use of viruses, Trojan horses, worms, time bombs, denial of service attacks, flooding or spamming. You shall not use any O.MG Device in any manner that could damage, disable or impair Mischief Gadgets, LLC and/or its affiliates, or any third-party. You shall not use any O.MG Device to attempt to gain unauthorized access to any user account, computer systems, or networks through hacking, password mining or any other means. You shall not use any O.MG Device alongside any robot, data scraper, miner or virtual computer to gain unlawful access to protected computer systems. </p>
<p>All features, functionality and other product specifications are subject to change without notice or obligation. Mischief Gadgets, LLC and/or its affiliates reserve the right to make changes to the product description in this document without notice. Mischief Gadgets, LLC and/or its affiliates do not assume any liability that may occur due to the use or application of the product(s) described herein.</p>
<p>These terms and conditions shall be governed by and construed in accordance with the laws of the state of New York, United States of America, and you agree to submit to the personal jurisdiction of the courts of the state of New York. In the event that any portion of these terms and conditions is deemed by a court to be invalid, the remaining provisions shall remain in full force and effect. You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to this Web site, or the use of this Website, must be filed within one year after such claim or cause of action arose and must be filed in a court in New York, New York, U.S.A.</p>
<p>As required by Section 512(c)(2) of Title 17 of the United States Code, if you believe that any material on the website located at https://o.mg.lol infringes your copyright, you must send a notice of claimed infringement to Mischief Gadget, LLC’s General Counsel at the following address:<br>
c/o Mischief Gadgets, LLC - General Counsel <br/>
Tor Ekeland Law, PLLC <br/>
30 Wall St., 8th Floor <br/>
New York, NY 10005 <br/>
[email protected]]</p>
<p>If you do not agree to be bound by this Agreement, do not access or use any O.MG Device, or the website located at https://o.mg.lol. We reserve the right, with or without notice, to make changes to this Agreement at our discretion. Continued use of any O.MG Device or the website located at https://o.mg.lol constitutes your acceptance of these Terms, as they may appear at the time of your access.</p>
<p>By clicking the “I Agree” button, by availing yourself of any O.MG Device or the website located at https://o.mg.lol, or by accessing, visiting, browsing, using or attempting to interact with or use any O.MG Device or the website located at https://o.mg.lol, you agree that you have read, understand, and agree to be bound by this Agreement as well as our Privacy Policy, which is a part of this Agreement and which can be viewed here: https://o.mg.lol.</p>
</div>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-danger" id="agreement-progress" role="progressbar" style="width: 0%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="m-2 bg-white">
<div id="welcome-instructions" class="carousel slide carousel-fade" data-bs-ride="carousel" data-bs-interval="3000">
<div class="carousel-inner">
<div class="carousel-item active">
<p>By clicking "I Agree" you agree to the above.</p>
</div>
</div>
</div>
<!--<div class="form-check form-switch pt-3 d-none">
<input class="form-check-input" type="checkbox" id="welcomeScreenCheck">
<label class="form-check-label" for="welcomeScreenCheck">Do not show this screen again</label>
</div>-->
<!--<button id="btnWelcomeHelp" class="fancy btn" type="button">Help</button>-->
</div>
<div class="m-2 text-center justify-content-center">
<button id="btnWelcome" class="fancy btn btn-secondary btn-lg" type="button" disabled>I Agree</button>
<button id="btnDeny" class="fancy btn btn-danger btn-lg" type="button">I do not agree</button>
</div>
<!--<div class="p-4"></div>-->
</div>
<div class="step d-none" id="modular-stepper">
<div class="d-flex justify-content-between bd-highlight mb-3">
<div class="p-2 bd-highlight"></div>
<div class="p-2 bd-highlight"><h2>O.MG Web Flasher</h2></div>
<div class="p-2 bd-highlight">
<button type="button" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#modalConsole">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-terminal" viewBox="0 0 16 16">
<path d="M6 9a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3A.5.5 0 0 1 6 9zM3.854 4.146a.5.5 0 1 0-.708.708L4.793 6.5 3.146 8.146a.5.5 0 1 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2z"/>
<path d="M2 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H2zm12 1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12z"/>
</svg>
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#modalSettings" id="settingsButton">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-gear-fill" viewBox="0 0 16 16">
<path d="M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z"></path>
</svg>
</button>
</div>
</div>
<div class="row px-3">
<div class="alert d-none" role="alert" id="statusAlert"></div>
<div class="accordion text-left justify-content-left pt-2" id="programmingAcc">
<div class="accordion-item">
<h2 class="accordion-header d-none" id="programmerStep0">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#programmerStep0-collapse" aria-expanded="true" aria-controls="programmerStep1" >
<i class="bi-circle step-icon" id="programmerStep0-status"></i>
Begin
</button>
</h2>
<div id="programmerStep0-collapse" class="accordion-collapse collapse show" aria-labelledby="programmerStep0">
<div class="pb-2 pt-3 justify-content-center text-center">
<button type="button" class="btn btn-success btn-xxl" id="btnStart">Start!</button>
</div>
<div class="accordion-details">
<img src="assets/welcome-instructions.png" class="rounded mx-auto d-block img-fluid p-1" alt="Welcome Instructions">
<p>The "C+A" Programmer requires a cable to connect to your computer and uses a USB Type C connector so either a C to A or C to C cable to connect the programmer to your computer. The programmer port labeled "PC" should go to your computer. Then plug your O.MG Cable into one of the programmer ports labeled "O.MG". The "A" Programmer connects directly to your computer via a USB Type A Port. </p>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="programmerStep1">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#programmerStep1-collapse" aria-expanded="true" aria-controls="programmerStep1" >
<i class="bi-circle step-icon" id="programmerStep1-status"></i>
<strong>Step 1:</strong> Plug-In
</button>
</h2>
<div id="programmerStep1-collapse" class="accordion-collapse collapse show" aria-labelledby="programmerStep1">
<div class="accordion-body">
First, connect the O.MG Programmer to your computer. Then connect the <b>active end</b> of the O.MG Device into the programmer. Need help or more details? Click the Help button below.
</div>
<div class="pb-2 pt-3 justify-content-center text-center">
<button type="button" class="btn btn-success btn-lg" id="btnConnectHw">Continue</button>
<button type="button" class="btn btn-secondary btn-lg" data-bs-toggle="modal" data-bs-target="#modalHelpHardware">Step 1 Help</button>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="programmerStep2">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#programmerStep2-collapse" aria-expanded="true" aria-controls="programmerStep2" id="programmerStep2-Header">
<i class="bi-circle step-icon" id="programmerStep2-status"></i>
<strong>Step 2:</strong> Connect
</button>
</h2>
<div id="programmerStep2-collapse" class="accordion-collapse collapse show" aria-labelledby="programmerStep2">
<div class="accordion-body">
Now click the <strong>Connect</strong> button below. Your browser will prompt you to select the programmer. If no ports are shown, or you get an error, click the Help button below.
</div>
<div class="pb-2 pt-3 justify-content-center text-center">
<button type="button" class="btn btn-danger btn-lg fancy" id="btnConnect"><span class="spinner-border spinner-border-sm d-none"></span> Connect</button> <button type="button" class="btn btn-secondary btn-lg fancy" data-bs-toggle="modal" data-bs-target="#modalHelpConnect">Step 2 Help</button>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="programmerStep3">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#programmerStep3-collapse" aria-expanded="true" aria-controls="programmerStep3">
<i class="bi-circle step-icon" id="programmerStep3-status"></i>
<strong>Step 3:</strong> Flash
</button>
</h2>
<div id="programmerStep3-collapse" class="accordion-collapse collapse show" aria-labelledby="programmerStep2">
<div class="accordion-body">
Press the <strong>Program</strong> button below, thats it! Just wait for the progress bar to complete.
<div class="pb-2 pt-3 justify-content-center text-center">
<label for="branch" class="form-label">Firmware Build</label>
<select id="branch" class="form-select">
<option value="stable" selected disabled>UNKNOWN</option>
</select>
</div>
<div class="pb-2 pt-3 justify-content-center text-center">
<div class="progress">
<div class="progress-bar progress-bar-striped progress-bar-animated bg-danger" role="progressbar" style="width: 0%" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
</div>
</div>
<div class="pb-2 pt-3 justify-content-center text-center">
<button type="button" class="btn btn-danger btn-lg fancy" id="btnProgram"><span class="spinner-border spinner-border-sm d-none"></span> <span class="programMsg">Program</span></button> <button type="button" class="btn btn-secondary btn-lg fancy" data-bs-toggle="modal" data-bs-target="#modalHelpFlash">Step 3 Help</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="step-success" class="step d-none">
<div class="d-flex justify-content-between bd-highlight mb-3">
<div class="p-2 bd-highlight"></div>
<div class="p-2 bd-highlight"><h2>O.MG Web Flasher</h2></div>
<div class="p-2 bd-highlight">
<button type="button" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#modalConsole">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-terminal" viewBox="0 0 16 16">
<path d="M6 9a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3A.5.5 0 0 1 6 9zM3.854 4.146a.5.5 0 1 0-.708.708L4.793 6.5 3.146 8.146a.5.5 0 1 0 .708.708l2-2a.5.5 0 0 0 0-.708l-2-2z"/>
<path d="M2 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H2zm12 1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12z"/>
</svg>
</button>
</div>
</div>
<div class="mt-2">
<div class="text-center" style="margin:0;padding:0;">
<h3 class="display-6" id="success-notification">Firmware Flashed Successfully!</h3>
<br/>
</div>
<div class="text-center" id="success-info">
<p class="lh-sm">
<strong>WiFi SSID:</strong> <span id="success-wifi-ssid" class="font-monospace fst-italic fw-lighter">Unknown</span><br/>
<strong>WiFi Password:</strong> <span id="success-wifi-pass" class="font-monospace fst-italic fw-lighter">Unknown</span><br/>
<strong class="d-none">Configuration Mode:</strong> <span id="success-config-type" class="d-none">Unknown</span>
</p>
</div>
<div>
<p class="lead text-center" id="success-msg">
<p class=""lead">
To use the O.MG Device: Connect the active into a USB port.
Then connect to the WiFi network and browse to http://192.168.4.1/.
<br/>BEFORE USE, FULLY READ THE <a href=" https://github.com/O-MG/O.MG_Cable-Firmware/wiki">USAGE & SAFETY INSTRUCTIONS</a>
</p>
<div style="text-align: left;">
SPECS:
<ul style="font-weight: normal;"></ulstyle>
<li>Power: 5v (+/- 0.5v), 500mA</li>
<li>Radio: 802.11b/g/n (2.4GHz)</li>
<li>For Devices with passthrough capability (O.MG Cable, O.MG Adapter, & O.MG UnBlocker):
<ul>
<li>Passthrough Charging: 5v (max)</li>
<li>Passthrough Data: 480mbps USB</li>
</ul>
</li>
</ul>
</div>
</p>
<p class="d-none text-center" id="success-state-msg">
Further details about the current flashing process can be seen in the flasher log (button in the top right of this screen).
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div><!-- PRELOADER -->
<div class="modal fade" id="modalConsole" tabindex="-1" aria-labelledby="modalConsole" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Web Flasher Console</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="font-weight-light p-2">
<p>The O.MG Web Flasher logs contain debug information and are not needed for general use. If requested you can download the logs for support.</p>
</div>
<div class="pt-2" id="log"><p class="d-none">Logging enabled...</p></div>
</div>
<div class="modal-footer">
<div class="form-check form-switch form-control-lg">
<label class="form-check-label" for="flexSwitchCheckDefault">Auto Scroll</label>
<input class="form-check-input" type="checkbox" id="btnAutoscroll" id="flexSwitchCheckDefault" checked>
</div>
<button type="button" class="btn btn-dark" id="btnDownload">Download</button>
<button type="button" class="btn btn-dark" id="btnClear">Clear</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalSettings" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modalSettings" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Settings</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container-fluid">
<form class="row g-3">
<h4>Web Flasher Configuration</h4>
<div class="row">
<div class="col-md-12">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" id="uploadDebugFirmware">
<label class="form-check-label" for="uploadDebugFirmware" >Upload Custom Binary?</label>
</div>
<div class="mb-3">
<label for="formFileDisabled" class="form-label">Debug Firmware</label>
<input class="form-control debugfirmware" type="file" accept=".bin" id="debugFirmwareFile" disabled>
<input class="form-control d-none" type="input" id="debugFirmwareFileOffset" value="0x00000" disabled>
</div>
</div>
</div>
<div class="row d-none">
<div class="col-md-6 pb-2 d-none">
<label for="welcomeScreenCheck" class="form-label" >Skip Welcome?</label>
<select id="welcomeScreenCheck" class="form-select" disabled></select>
</div>
<div class="col-md-6 pb-2 d-none">
<label for="baudRate" class="form-label" >Skip Welcome?</label>
<select id="baudRate" class="form-select" disabled></select>
</div>
<div class="col-md-6 text-left form-control-lg">
<div class="d-none form-check form-switch">
<input class="form-check-input" type="checkbox" id="eraseCable">
<label class="form-check-label" for="eraseCable">Erase Before Flash?</label>
</div>
</div>
<div class="col-md-6 text-left form-control-lg">
<div class="d-none form-check form-switch">
<input class="form-check-input" type="checkbox" id="darkMode" disabled>
<label class="form-check-label" for="darkMode">Enable Dark Mode?</label>
</div>
</div>
<div class="col-md-6 text-left form-control-lg">
<input class="btn btn-dark" type="button" id="btnDebug" value="Toggle WebFlasher Debug Mode">
</div>
</div>
<hr/>
<h4>Device Configuration</h4>
<div class="row d-none">
<div class="col-12">
<div class="form-check form-switch form-control-lg pt-4 pb-4">
<input class="form-check-input" type="checkbox" id="customizeDevice" disabled>
<label class="form-check-label" for="customizeDevice">Customize WiFi Configuration</label>
</div>
</div>
</div>
<div class="row d-none" id="deviceConfigOptions">
<div class="col-12">
<div class="form-check">
<input class="form-check-input deviceConfigOptions" type="radio" name="wifiMode" id="wifiMode1">
<label class="form-check-label" for="wifiMode1">
Connect to Existing Network
</label>
</div>
<div class="form-check">
<input class="form-check-input deviceConfigOptions" type="radio" name="wifiMode" id="wifiMode2" checked>
<label class="form-check-label" for="wifiMode2">
Act as Access Point (Create a new SSID/AP)
</label>
</div>
</div>
<div class="col-12 pt-2">
<label for="ssidName" class="form-label">SSID Name</label>
<input type="text" class="form-control deviceConfigOptions" id="ssidName" maxlength="32" pattern=".{8,32}" value="O.MG" placeholder="O.MG">
</div>
<div class="col-12 pt-2">
<label for="ssidPass" class="form-label">Password</label>
<input type="text" class="form-control deviceConfigOptions" id="ssidPass" maxlength="60" pattern=".{8,60}" value="12345678" placeholder="12345678">
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" id="btnSaveSettings">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalHelpHardware" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modalHelpHardware" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Help: Hardware </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container-fluid">
<div id="welcome-instructions" class="carousel slide carousel-fade" data-bs-ride="carousel" data-bs-interval="5000">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="assets/welcome-instructions.png" class="img-fluid p-2" alt="Welcome Instructions">
</div>
</div>
</div>
</div>
<p>The "A+C Programmer" requires a standard USB cable to connect to your computer. Any USB cable that can pass data will work. Connect the programmer port labeled "PC" to your computer. Then connect the active end of your O.MG Device to one of the programmer ports labeled "O.MG" </p>
<p>The PWR, USB, and OMG lights need to be ON to sucessfully flash firmware.</p>
<p>The PWR light indicates that you have supplied power to the "PC" connection. If it does not turn on, try using a different USB cable. </p>
<p>The USB light indicates that the data lines on PC side are connected to your computer. If it does not turn on, you probably have a "charge only" USB cable. Try using a different USB cable.</p>
<p>The OMG light indicates that the active end of your OMG device has been properly connected to the programmer. If it does not turn on, you may have accidentally connected the passive end.</p>
<p>The ACT light will only turn on when actively flashing the OMG device.</p>
<p>If the above does not solve the issue, open a ticket in the #omg-support channel: https://hak5.org/discord</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalHelpConnect" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modalHelpConnect" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Help: Connecting to Device </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container-fluid">
<img src="assets/show-me-how-serial-1.png" class="img-fluid p-2" alt="Serial Instructions">
<p>When you click the red "Connect" button, you will see a pop-up in your browser similar to the above screenshot. First, select the entry for the CP2102 device by clicking on it, then click the "Connect" button.</p>
<p>If no device is listed, you may be missing a driver, using a bad cable, or have things connected in the wrong order.</p>
<p>Make sure your programmer is connected to the computer correctly (see Step #1 Help). Then, try using a new cable to ensure you have not accidentally supplied a "charge only" cable.</p>
<p>Try installing the CP2102N drivers which are available directly from SiLabs <a href="https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads#software">here</a>.</b></p>
<p>If the CP2102 is selected, but you still get an error, another process may be stealing access to the serial port. Common causes: the flasher is open in another tab, you also have the python flasher open, or another application is automatically trying to connect to available serial ports (ex: 3D printer software). If so, close them, then fully unplug the programmer and plug it back in. Then try flashing again. Worst case, you may need to reboot your computer to release the serial port. In some cases, like with Pop!_OS, your user permissions are insufficient to communicate with a serial port.</p>
<p>If the above does not solve the issue, ask for help on #omg-support: https://hak5.org/discord</p>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalHelpFlash" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modalHelpFlash" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Help: Programming</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="container-fluid">
<p>Press the Program Button, and wait for the upgrade to complete. It may take a few minutes.</p>
<p>Not sure which firmware? Choose the default selected firmware.</p>
<p>If you see an error, please verify all components are plugged in properly and that no other devices are connected to your O.MG Device besides the programmer.</p>
<p>If using the A+C Programmer, you should see the PWR light turn on when the programmer is connected to your computer. The USB light turns on when there is a data link between your computer and the Programmer. The OMG light will turn on when your O.MG device is correctly attached. The ACT light will briefly flash when the flasher is talking to the O.MG Device. Any other behavior indicates a possible issue and you should ask for help on #omg-support: https://hak5.org/discord </p>
<p>Refresh the page to try flashing again.</p>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="notSupported" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="notSupported" aria-hidden="true">
<div class="modal-dialog modal-fullscreen">
<div class="modal-content text-center align-middle p-5">
<h1 class="text-danger fs-1 h1">Unsupported Browser</h1>
<div class="notSupported fs-5">
<p>Sorry, <b>Web Serial</b> is not supported on this browser.</p>
<p class="text-left">Make sure you're running Chrome 78 or later and have enabled the
<code>#enable-experimental-web-platform-features</code> flag in
<code>chrome://flags</code>.</p>
<p>You may also have to <a href="https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads#software">install drivers</a> on your sytem to enable support for the serial programmers.</p>
<p> Please note mobile browsers are not supported, check <a href="https://caniuse.com/web-serial">Can I Use WebSerial</a> for compatibility.</p>
</div>
</div>
</div>
</div>
<script src="js/bootstrap.min.js "></script>
</body>
</html>