sync.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. error_reporting(E_ALL);
  3. if (!isset($_SERVER['argv']) && !isset($argv)) {
  4. echo "Please enable the register_argc_argv directive in your php.ini\n";
  5. exit(1);
  6. } elseif (!isset($argv)) {
  7. $argv = $_SERVER['argv'];
  8. }
  9. if (!isset($argv[1]) || !in_array($argv[1], ['nano', 'tetra'])) {
  10. echo "Run with \"php opkg-parser.php [TYPE]\"\n";
  11. echo " TYPE -> 'nano' or 'tetra'\n";
  12. exit(1);
  13. }
  14. //tar czf OnlineHashCrack.tar.gz OnlineHashCrack && mv OnlineHashCrack.tar.gz ../build
  15. //tar czf PMKIDAttack.tar.gz PMKIDAttack && mv PMKIDAttack.tar.gz ../build
  16. //tar czf Terminal.tar.gz Terminal && mv Terminal.tar.gz ../build
  17. $extraPackages = [
  18. 'OnlineHashCrack',
  19. 'PMKIDAttack',
  20. 'Terminal',
  21. ];
  22. echo "\nsync mk6 packages - by DSR!\n\n";
  23. $device = $argv[1];
  24. $disableSync = (isset($argv[2]) && filter_var($argv[2], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
  25. $buildDir = getcwd() . '/build';
  26. $srcDir = getcwd() . '/src';
  27. $moduleData = json_decode(file_get_contents("https://www.wifipineapple.com/{$device}/modules"), true);
  28. if (!$disableSync) {
  29. echo "======== Packages (" . count($moduleData) . ") ========\n";
  30. foreach ($moduleData as $key => $value) {
  31. if ($value["type"] !== 'Sys') {
  32. echo " [+] {$key}\n";
  33. $file = file_get_contents("https://www.wifipineapple.com/{$device}/modules/{$key}");
  34. @unlink("{$buildDir}/{$key}.tar.gz");
  35. file_put_contents("{$buildDir}/{$key}.tar.gz", $file);
  36. }
  37. }
  38. echo "\n\n";
  39. }
  40. echo "======== Extra Packages (" . count($extraPackages) . ") ========\n";
  41. foreach ($extraPackages as $key) {
  42. echo " [+] {$key}\n";
  43. $fileName = "{$buildDir}/{$key}.tar.gz";
  44. $infoData = json_decode(file_get_contents("{$srcDir}/{$key}/module.info"));
  45. $module = [
  46. 'name' => $key,
  47. 'title' => $infoData->title,
  48. 'version' => $infoData->version,
  49. 'description' => $infoData->description,
  50. 'author' => $infoData->author,
  51. 'size' => filesize($fileName),
  52. 'checksum' => hash_file('sha256', $fileName),
  53. 'num_downloads' => '0',
  54. ];
  55. if (isset($infoData->system)) {
  56. $module['type'] = 'System';
  57. } elseif (isset($infoData->cliOnly)) {
  58. $module['type'] = 'CLI';
  59. } else {
  60. $module['type'] = 'GUI';
  61. }
  62. $moduleData[ $key ] = $module;
  63. }
  64. asort($moduleData);
  65. //@unlink("{$buildDir}/{$device}.json");
  66. //file_put_contents("{$buildDir}/{$device}.json", json_encode($moduleData));
  67. @unlink("{$buildDir}/modules.json");
  68. file_put_contents("{$buildDir}/modules.json", json_encode($moduleData));
  69. echo "\n\n";
  70. echo "Complete!";