|
|
@ -1,7 +1,7 @@ |
|
|
|
<?php |
|
|
|
/* |
|
|
|
Example: |
|
|
|
http://www.neutrino-images.de/neutrino-images/get-kernel.php?boxtype=armbox&boxmodel=hd51 |
|
|
|
http://www.neutrino-images.de/neutrino-images/get-kernel.php?boxtype=coolstream&boxmodel=apollo |
|
|
|
*/ |
|
|
|
|
|
|
|
$boxtype = trim($_GET["boxtype"]); |
|
|
@ -9,7 +9,9 @@ $boxtype_sc = ""; # autofilled |
|
|
|
$boxseries = trim($_GET["boxseries"]); |
|
|
|
$boxmodel = trim($_GET["boxmodel"]); |
|
|
|
|
|
|
|
$kernel_prefix = ""; |
|
|
|
$kernel_suffix = ""; |
|
|
|
$image_version = "???"; # wildcard for version (e.g. 320) |
|
|
|
$image_date = "????????????"; # wildcard for date (e.g. 201601012359) |
|
|
|
$image_type = "nightly"; |
|
|
|
|
|
|
|
# convert strings to lower case |
|
|
@ -25,25 +27,37 @@ if ($boxtype == "coolstream" || $boxtype == "cst") |
|
|
|
|
|
|
|
if ($boxmodel == "nevis") |
|
|
|
{ |
|
|
|
$kernel_prefix = "-zImage.img"; |
|
|
|
$kernel_suffix = "-zImage.img"; |
|
|
|
} |
|
|
|
elseif ($boxmodel == "apollo" || $boxmodel == "shiner" || $boxmodel == "kronos" || $boxmodel == "kronos_v2") |
|
|
|
{ |
|
|
|
$kernel_prefix = "-vmlinux.ub.gz"; |
|
|
|
$kernel_suffix = "-vmlinux.ub.gz"; |
|
|
|
} |
|
|
|
} |
|
|
|
elseif ($boxtype == "armbox" || $boxtype == "arm") |
|
|
|
{ |
|
|
|
$boxtype_sc = "arm"; |
|
|
|
|
|
|
|
$kernel_prefix = ".bin"; |
|
|
|
$kernel_suffix = ".bin"; |
|
|
|
} |
|
|
|
|
|
|
|
# release/kernel-cst-kronos-vmlinux.ub.gz |
|
|
|
# release/ni320-YYYYMMDDHHMM-cst-kronos-vmlinux.ub.gz |
|
|
|
$directory = $image_type; |
|
|
|
$kernel = $directory . "/kernel-" . $boxtype_sc . "-" . $boxmodel . $kernel_prefix; |
|
|
|
$pattern = $directory . "/ni" . $image_version . "-" . $image_date . "-" . $boxtype_sc . "-" . $boxmodel . $kernel_suffix; |
|
|
|
|
|
|
|
if (!file_exists($kernel)) |
|
|
|
# find last (newest) kernel |
|
|
|
$last_mod = 0; |
|
|
|
$last_kernel = ""; |
|
|
|
foreach (glob($pattern) as $kernel) |
|
|
|
{ |
|
|
|
if (is_file($kernel) && filectime($kernel) > $last_mod) |
|
|
|
{ |
|
|
|
$last_mod = filectime($kernel); |
|
|
|
$last_kernel = $kernel; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (empty($last_kernel)) |
|
|
|
{ |
|
|
|
# send error |
|
|
|
header('HTTP/1.0 404 Not Found'); |
|
|
@ -54,11 +68,11 @@ else |
|
|
|
# send kernel |
|
|
|
header('Content-Description: File Transfer'); |
|
|
|
header('Content-Type: application/octet-stream'); |
|
|
|
header('Content-Disposition: attachment; filename="' . basename($kernel) . '"'); |
|
|
|
header('Content-Disposition: attachment; filename="' . basename($last_kernel) . '"'); |
|
|
|
header('Expires: 0'); |
|
|
|
header('Cache-Control: must-revalidate'); |
|
|
|
header('Pragma: public'); |
|
|
|
header('Content-Length: ' . filesize($kernel)); |
|
|
|
readfile($kernel); |
|
|
|
header('Content-Length: ' . filesize($last_kernel)); |
|
|
|
readfile($last_kernel); |
|
|
|
} |
|
|
|
?> |