Skip to content
This repository has been archived by the owner on Jul 26, 2019. It is now read-only.

Commit

Permalink
Add model chooser
Browse files Browse the repository at this point in the history
  • Loading branch information
1Conan committed Dec 20, 2016
1 parent 958606c commit 0ed9324
Show file tree
Hide file tree
Showing 13 changed files with 549 additions and 109 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ For every 12am

(optional)
Change theme:<br>
1. Remove rename style.css to style-black.css<br>
2. Rename style-white.css to style.css<br>
1. Remove rename style.css to style-white.css<br>
2. Rename style-black.css to style.css<br>

#How to get the auto index stuff
I used nginx for that. Here is the config for it.
Expand Down
8 changes: 4 additions & 4 deletions cron.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
'charset' => 'utf8'
]);

$savedDevices = $database->query('SELECT * FROM '.$database['table'])->fetchAll();
$savedDevices = $database->query('SELECT * FROM '.$db['table'])->fetchAll();
unset($database);

$countSavedDevices = count($savedDevices);
Expand Down Expand Up @@ -64,7 +64,7 @@
$cmd .= " -d ".escapeshellarg($deviceInfo['deviceIdentifier']);
$cmd .= " -e ".escapeshellarg($deviceInfo['deviceECID']);
$cmd .= " -i ".escapeshellarg($currentFirmware['version']);
$cmd .= " --buildid ".escapeshellarg($currentFirmware['build']);
$cmd .= " --buildid ".escapeshellarg($currentFirmware['buildid']);
$cmd .= " -s ";
$cmd .= "--save-path ".$savePath.'/noapnonce';
shell_exec($cmd);
Expand All @@ -76,11 +76,11 @@
mkdir($savePath.'/apnonce-'.$currentApnonce, 0777, true);
}

$cmd = "./tsschecker "
$cmd = "./tsschecker ";
$cmd .= "-d ".escapeshellarg($deviceInfo['deviceIdentifier']);
$cmd .= " -e ".escapeshellarg($deviceInfo['deviceECID']);
$cmd .= " -i ".escapeshellarg($currentFirmware['version']);
$cmd .= " --buildid ".escapeshellarg($currentFirmware['build']);
$cmd .= " --buildid ".escapeshellarg($currentFirmware['buildid']);
$cmd .= " -s";
$cmd .= " --apnonce ".$currentApnonce;
$cmd .= " --save-path ".$savePath.'/apnonce-'.$currentApnonce.'';
Expand Down
5 changes: 2 additions & 3 deletions inc/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
* License: MIT
*/

function saveBlobs($deviceInfo) {
$countApnonce = count($apnonce);

function saveBlobs($deviceInfo, $apnonce, $signedVersionsURL) {
$countApnonce = count($apnonce);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Expand Down
151 changes: 104 additions & 47 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,42 +24,45 @@
err("Captcha Error!");
}
}
if($_POST['ECIDType'] = 0) {
if($_POST['ECIDType'] == 0) {
if(ctype_xdigit($_POST['ECID']) && is_numeric(hexdec($_POST['ECID']))) {
$deviceECID = hexdec($_POST['ECID']);
} else {
err("Invalid ECID!");
err("Invalid ECID! (HEX)");
}
} else ($_POST['ECIDType'] = 1) {
} else if($_POST['ECIDType'] == 1) {
if(is_numeric($_POST['ECID'])) {
$deviceECID = $_POST['ECID'];
} else {
err("Invalid ECID!");
err("Invalid ECID! (DEC)");
}
}

// TODO: Change to let users just select the model
if($_POST['deviceType'] == 0) {
if($_POST['deviceType'] == "iPhone") {
$deviceType = "iPhone";
} else if($_POST['deviceType'] == 1) {
} else if($_POST['deviceType'] == "iPod") {
$deviceType = "iPod";
} else if($_POST['deviceType'] == 2) {
} else if($_POST['deviceType'] == "iPad") {
$deviceType = "iPad";
} else if($_POST['deviceType'] == 3) {
} else if($_POST['deviceType'] == "AppleTV") {
$deviceType = "AppleTV";
}


} else {
err("Invalid Device Type!");
}
$deviceModelList = json_decode(file_get_contents('json/deviceModels.json'), true);

$deviceIdentifier = $deviceModelList[$deviceType][$_POST['deviceModel']];

$deviceInfo = array(
'deviceIdentifier' => $deviceType.$_POST['identifier'],
'deviceIdentifier' => $deviceIdentifier,
'deviceType' => $deviceType,
'deviceID' => $_POST['identifier'],
'deviceID' => str_replace($deviceType, "", $deviceIdentifier),
'deviceECID' => $deviceECID
);
$deviceList = json_decode(file_get_contents('json/devices.json'), true);
if(!in_array($deviceInfo['deviceIdentifier'], $deviceList)){
err("Device Identifier not recognized!");
err("Device Identifier not recognized! ".$deviceIdentifier);
}


Expand All @@ -72,15 +75,14 @@
'password' => $db['password'],
'charset' => 'utf8'
]);

$result = $database->select($database['table'], 'deviceECID', [
$result = $database->select($db['table'], 'deviceECID', [
'deviceECID' => $deviceECID
]);

$url = $savedSHSHURL.$deviceECID;

if(count($result) > 0) {
saveBlobs($deviceInfo);
saveBlobs($deviceInfo, $apnonce, $signedVersionsURL);

die("<center>Device identifier already added! (Force download starting.) <br><a href='".$url."'>".$url."</a></center>");
}
Expand All @@ -89,9 +91,9 @@
mkdir('shsh/'.$deviceECID, 0777, true);
}

$database->insert($database['table'], $deviceInfo);
$database->insert($db['table'], $deviceInfo);

saveBlobs($deviceInfo);
saveBlobs($deviceInfo, $apnonce, $signedVersionsURL);

exit("<center>Done saving ECID!<br>SHSH blobs will be saved in <a href='".$url."'>".$url."</a></center>");
}
Expand Down Expand Up @@ -119,20 +121,46 @@
<div class="box">
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
<h1 class="note">ECID : </h1>
<select name="ECIDType">
<option value="0">Hex</option>
<option value="1">Dec</option>
</select>
<input type="text" name="ECID" placeholder="Type ECID Here..."><br>
<div class="inputGroup">
<select name="ECIDType" style="width:15%;float:left;height:29px">
<option value="0">Hex</option>
<option value="1">Dec</option>
</select>
<input type="text" name="ECID" placeholder="Type ECID Here..." style="width:85%">
</div>
<br>
<br>
<h1 class="note">Identifier : </h1>
<select name="deviceType">
<option value="0">iPhone</option>
<option value="1">iPod</option>
<option value="2">iPad</option>
<option value="3">AppleTV</option>
<select id="deviceType" name="deviceType">
<option value="iPhone">iPhone</option>
<option value="iPod">iPod</option>
<option value="iPad">iPad</option>
<option value="AppleTV">AppleTV</option>
</select>
<select id="deviceModel" name="deviceModel">
<option value="0">iPhone 2G</option>
<option value="1">iPhone 3G</option>
<option value="2">iPhone 3G[S]</option>
<option value="3">iPhone 4 (GSM)</option>
<option value="4">iPhone 4 (GSM 2012)</option>
<option value="5">iPhone 4 (CDMA)</option>
<option value="6">iPhone 4[S]</option>
<option value="7">iPhone 5 (GSM)</option>
<option value="8">iPhone 5 (Global)</option>
<option value="9">iPhone 5c (GSM)</option>
<option value="10">iPhone 5c (Global)</option>
<option value="11">iPhone 5s (GSM)</option>
<option value="12">iPhone 5s (Global)</option>
<option value="13">iPhone 6+</option>
<option value="14">iPhone 6</option>
<option value="15">iPhone 6s</option>
<option value="16">iPhone 6s+</option>
<option value="17">iPhone SE</option>
<option value="18">iPhone 7 (Global)</option>
<option value="19">iPhone 7 Plus (Global)</option>
<option value="20">iPhone 7 (GSM)</option>
<option value="21">iPhone 7 Plus (GSM)</option>
</select>
<input type="text" name="identifier" placeholder="Ex. 8,1" style="width:50px;padding:7px;">
<br><br>
<?php
if($reCaptcha['enabled'] == true) {
Expand All @@ -144,31 +172,60 @@
</div>
<div class="box">
<h1 class="note">Lost your link? </h1>
<input type="text" name="ECID" placeholder="Type (HEX)ECID Here..." id="inp_hex"><br><br>
<select id="inp_ECIDType" style="width:15%;float:left;height:29px">
<option value="0">Hex</option>
<option value="1">Dec</option>
</select>
<input type="text" placeholder="Type ECID Here..." id="inp_ecid" style="width:85%"><br><br>
<button class="button" id="showlink" style="width:100%">Get your blobs</a>
</div>
<p style="text-align:center;">Copyright &copy; 1Conan, 2016</p>
<p style="text-align:center;"><a href="https://github.com/1Conan/TSSSaver">TSS Savver</a> is licensed under MIT</p>
<script>
var serverURL = <?php echo $serverURL; ?>;
var serverURL = "<?php echo $serverURL; ?>";
function getJSON(url) {
var request = new XMLHttpRequest(),
data;
request.open('GET', url, false);
request.onload = function () {
if (request.status >= 200 && request.status < 400) {
data = request.responseText;
} else {
return false;
}
};
request.send();
return JSON.parse(data);
}
var request = new XMLHttpRequest(),
data;
request.open('GET', url, false);
request.onload = function () {
if (request.status >= 200 && request.status < 400) {
data = request.responseText;
} else {
return false;
}
};
request.send();
return JSON.parse(data);
}
document.getElementById("showlink").onclick = function() {
var ecid = getJSON(serverURL + "conv.php?hex=" + document.getElementById("inp_hex").value);
window.location = serverURL + "shsh/" + ecid.dec
var inp_ECIDType = document.getElementById('inp_ECIDType').value;
var inp_ecid = document.getElementById("inp_ecid").value;
console.log(inp_ECIDType);
if(inp_ECIDType == 0) {
var ecid = getJSON(serverURL + "conv.php?hex=" + inp_ecid);
console.log(ecid);
window.location = serverURL + "shsh/" + ecid.dec;
} else if(inp_ECIDType == 1) {
window.location = serverURL + "shsh/" + inp_ecid;
}
};
document.getElementById('deviceType').onchange = function() {
var deviceType = document.getElementById('deviceType');
var deviceModel = document.getElementById('deviceModel');
var modelList = getJSON(serverURL + "json/" + deviceType.value + ".json");
while(deviceModel.hasChildNodes()){
deviceModel.removeChild(deviceModel.lastChild);
}
for(var i = 0; i < modelList.length; i++) {
console.log(i);
var child = document.createElement('option');
var text = document.createTextNode(modelList[i]);
child.setAttribute('value', i);
child.appendChild(text);
deviceModel.appendChild(child);
}

}
</script>
<?php
if($reCaptcha['enabled'] == true) {
Expand Down
6 changes: 6 additions & 0 deletions json/AppleTV.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[
"Apple TV 2G",
"Apple TV 3",
"Apple TV 3 (2013)",
"Apple TV 4 (2015)"
]
73 changes: 73 additions & 0 deletions json/deviceModels.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
"iPhone": [
"iPhone1,1",
"iPhone1,2",
"iPhone2,1",
"iPhone3,1",
"iPhone3,2",
"iPhone3,3",
"iPhone4,1",
"iPhone5,1",
"iPhone5,2",
"iPhone5,3",
"iPhone5,4",
"iPhone6,1",
"iPhone6,2",
"iPhone7,1",
"iPhone7,2",
"iPhone8,1",
"iPhone8,2",
"iPhone8,4",
"iPhone9,1",
"iPhone9,2",
"iPhone9,3",
"iPhone9,4"
],
"iPod": [
"iPod1,1",
"iPod2,1",
"iPod3,1",
"iPod4,1",
"iPod5,1",
"iPod7,1"
],
"iPad": [
"iPad1,1",
"iPad2,1",
"iPad2,2",
"iPad2,3",
"iPad2,4",
"iPad2,5",
"iPad2,6",
"iPad2,7",
"iPad3,1",
"iPad3,2",
"iPad3,3",
"iPad3,4",
"iPad3,5",
"iPad3,6",
"iPad4,1",
"iPad4,2",
"iPad4,3",
"iPad4,4",
"iPad4,5",
"iPad4,6",
"iPad4,7",
"iPad4,8",
"iPad4,9",
"iPad5,1",
"iPad5,2",
"iPad5,3",
"iPad5,4",
"iPad6,3",
"iPad6,4",
"iPad6,7",
"iPad6,8"
],
"AppleTV": [
"AppleTV2,1",
"AppleTV3,1",
"AppleTV3,2",
"AppleTV5,3"
]
}
33 changes: 33 additions & 0 deletions json/iPad.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[
"iPad 1",
"iPad 2 (WiFi)",
"iPad 2 (GSM)",
"iPad 2 (CDMA)",
"iPad 2 (Mid 2012),",
"iPad Mini (WiFi)",
"iPad Mini (GSM)",
"iPad Mini (Global)",
"iPad 3 (WiFi)",
"iPad 3 (CDMA)",
"iPad 3 (GSM)",
"iPad 4 (WiFi)",
"iPad 4 (GSM)",
"iPad 4 (Global)",
"iPad Air (WiFi)",
"iPad Air (Cellular)",
"iPad Air (China)",
"iPad Mini 2 (WiFi)",
"iPad Mini 2 (Cellular)",
"iPad Mini 2 (China)",
"iPad Mini 3 (WiFi)",
"iPad Mini 3 (Cellular)",
"iPad Mini 3 (China)",
"iPad Mini 4 (WiFi)",
"iPad Mini 4 (Cellular)",
"iPad Air 2 (WiFi)",
"iPad Air 2 (Cellular)",
"iPad Pro 9.7-inch (WiFi)",
"iPad Pro 9.7-inch (Cellular)",
"iPad Pro 12.9-inch (WiFi)",
"iPad Pro 12.9-inch (Cellular)"
]
Loading

0 comments on commit 0ed9324

Please sign in to comment.