generate proper ssids

This commit is contained in:
zefie
2022-11-29 16:45:18 -05:00
parent 58ce774797
commit 83e2d779f2
2 changed files with 104 additions and 10 deletions

View File

@@ -291,14 +291,15 @@ function patchBinary(patchDataObject) {
return patched_file;
}
function generateSSID() {
var ssid_template = "91xxxY0xx0b002xx";
var ssid_template = "91xxxxxxaeb002";
var ssid = ssid_template;
while (ssid.indexOf("x") != -1) {
// random hex char from 0-F
ssid = ssid.replace("x", Math.floor(Math.random() * 16).toString(16))
}
ssid = ssid.replace("Y", Math.floor(Math.random() * 7));
return ssid;
}
return ssid + wtvshared.getSSIDCRC(ssid);
}
function buildProfile(build) {
@@ -517,15 +518,31 @@ window.onload = function() {
updateFeatureBits();
}
function getSSIDCRC(ssid) {
let crc = 0;
var ssid = ssid.substr(0, 14);
for (let i = 0; i < ssid.length; i += 2) {
let inbyte = parseInt(ssid.substring(i, i+2), 16);
for (let ii = 8; ii > 0; ii--) {
let mix = (crc ^ inbyte) & 0x01;
crc >>= 1;
if (mix != 0) crc ^= 0x8C;
inbyte >>= 1;
}
if(isNaN(crc)) crc = 0;
}
return crc.toString(16);
}
function generateSSID() {
var ssidForm = document.getElementById('client_ssid');
var ssid_template = "91xxxY0xx0b002xx";
var ssid_template = "91xxxxxxaeb002";
var ssid = ssid_template;
while (ssid.indexOf("x") != -1) {
ssid = ssid.replace("x",Math.floor(Math.random() * 16).toString(16))
}
ssid = ssid.replace("Y", Math.floor(Math.random() * 7));
ssidForm.value = ssid;
// random hex char from 0-F
ssid = ssid.replace("x", Math.floor(Math.random() * 16).toString(16))
}
document.getElementById('client_ssid').value = ssid + getSSIDCRC(ssid);
}
function validateForm() {

View File

@@ -41,6 +41,25 @@ class WTVShared {
}
}
getSSIDCRC(ssid) {
let crc = 0;
var ssid = ssid.substr(0, 14);
for (let i = 0; i < ssid.length; i += 2) {
let inbyte = parseInt(ssid.substring(i, i + 2), 16);
for (let ii = 8; ii > 0; ii--) {
let mix = (crc ^ inbyte) & 0x01;
crc >>= 1;
if (mix != 0) crc ^= 0x8C;
inbyte >>= 1;
}
if (isNaN(crc)) crc = 0;
}
return crc.toString(16);
}
atob(a) {
const CryptoJS = require('crypto-js');
const enc = CryptoJS.enc.Base64.parse(a);
@@ -364,6 +383,64 @@ class WTVShared {
}
}
parseSSID(ssid) {
var ssid_obj = {};
switch (ssid.substring(0, 2)) {
case "01":
ssid_obj.boxType = "Internal";
break;
case "81":
ssid_obj.boxType = "Retail";
break;
case "91":
// not a definitive way to detect a viewer
ssid_obj.boxType = "Viewer";
break;
}
ssid_obj.unique_id = ssid.substring(2, 8);
switch (ssid.substring(10, 14).toUpperCase()) {
case "B002":
ssid_obj.region = "US/Canada";
break;
case "B102":
ssid_obj.region = "Japan";
break;
}
switch (ssid.substring(8, 10).toUpperCase()) {
case "00":
if (ssid_obj.region == "Japan") ssid_obj.manufacturer = "Panasonic";
else ssid_obj.manufacturer = "Sony";
break;
case "10":
case "50":
ssid_obj.manufacturer = "Philips";
break;
case "40":
ssid_obj.manufacturer = "Mitsubishi";
break;
case "70":
ssid_obj.manufacturer = "Samsung";
break;
case "80":
ssid_obj.manufacturer = "EchoStar";
break;
case "90":
ssid_obj.manufacturer = "RCA";
break;
case "AE":
ssid_obj.manufacturer = "zefie & MattMan69";
break;
}
ssid_obj.crc = ssid.substring(14)
return ssid_obj;
}
getManufacturer(ssid) {
return parseSSID(ssid).manufacturer || null;
}
moveObjectElement(currentKey, afterKey, obj, caseInsensitive = false) {
var result = {};
if (caseInsensitive) {