install.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. // by 请勿倒卖,已申请软著,否则追究法律责任
  3. namespace app\upload;
  4. use app\index\Base;
  5. use app\index\super_sign;
  6. class install extends Base
  7. {
  8. function index()
  9. {
  10. $_var_0 = intval(bees_decrypt(SafeRequest("id", "get")));
  11. $_var_1 = SafeRequest("s", "get");
  12. $_var_2 = SafeRequest("ssid", "get");
  13. $_var_3 = db("appid")->where("in_id", $_var_0)->find();
  14. $_var_4 = db("user")->where("in_userid", $_var_3["in_uid"])->find();
  15. if (!$_var_3["in_super"]) {
  16. $_var_4["in_points"] >= $_var_3["in_deduct"] || redirect(getlink($_var_0));
  17. }
  18. $_var_5 = md5($_var_0 . "|" . time() . "|" . rand(2, pow(2, 24)));
  19. db("salt")->insert(array("in_aid" => $_var_0, "in_salt" => $_var_5, "in_time" => time()));
  20. if ($_var_3["in_sign_type"] != 2) {
  21. db("downhistory")->where("appid", $_var_0)->whereTime("addtime", "today")->inc("down")->inc("down_points", $_var_3["in_deduct"])->update();
  22. db("appid")->where("in_id", $_var_0)->inc("in_downloads")->update();
  23. changeAc(-1 * $_var_3["in_deduct"], $_var_4, "in_points", "[" . $_var_3["in_id"] . "]-" . $_var_3["in_name"] . "-下载扣除");
  24. }
  25. if ($_var_3["in_form"] == "iOS") {
  26. $_var_6 = "https://" . $_SERVER["HTTP_HOST"];
  27. if ($_var_3["in_super"]) {
  28. if ($_var_2) {
  29. $_var_7 = db("super_sign")->where("id", $_var_2)->value("plist_path");
  30. if ($_var_7 && is_file(IN_ROOT . $_var_7)) {
  31. $_var_8 = "itms-services://?action=download-manifest&url=" . $_var_6 . "/" . $_var_7;
  32. redirect($_var_8);
  33. }
  34. exit("下载链接已失效" . $_var_7);
  35. } else {
  36. $_var_9 = $_COOKIE["udid"] ?? "";
  37. if ($_var_9) {
  38. $_var_10 = new super_sign();
  39. $_var_10->create_logs($_var_3, $_var_9);
  40. } else {
  41. $_var_11 = $_var_6 . "/index/super_sign/mobileconfig?app_id=" . $_var_0;
  42. $_var_12 = $_var_6 . "/data/cert/public/embedded1.mobileprovision";
  43. redirect($_var_11);
  44. }
  45. }
  46. } else {
  47. if (substr($_var_3["in_app"], -13) == ".mobileconfig") {
  48. db("salt")->where("in_salt", $_var_5)->delete();
  49. redirect(getapp($_var_0, 1));
  50. } else {
  51. $_var_13 = $_var_6 . "/upload/install/ios/" . $_var_5 . ".plist";
  52. redirect("itms-services://?action=download-manifest&url=" . $_var_13);
  53. }
  54. }
  55. } else {
  56. if (IN_DENIED && getapp($_var_0) == false) {
  57. redirect("/upload/install/proxy/" . $_var_5 . ".apk");
  58. } else {
  59. db("salt")->where("in_salt", $_var_5)->delete();
  60. redirect(getapp($_var_0, 1));
  61. }
  62. }
  63. }
  64. function ios()
  65. {
  66. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  67. header("Cache-Control: no-cache, must-revalidate");
  68. header("Pragma: no-cache");
  69. header("Content-type: application/xml;charset=utf-8");
  70. $_var_14 = explode("/", isset($_SERVER["PATH_INFO"]) ? $_SERVER["PATH_INFO"] : NULL);
  71. $_var_15 = isset($_var_14[4]) ? $_var_14[4] : NULL;
  72. $_var_16 = SafeSql(str_replace(".plist", "", $_var_15));
  73. $_var_17 = db("salt")->where("in_salt", $_var_16)->value("in_aid");
  74. $_var_17 || exit("Access denied");
  75. if (IN_DENIED && getapp($_var_17) == false) {
  76. $_var_18 = get_site_url("s") . "/upload/install/proxy/" . $_var_16 . ".ipa";
  77. } else {
  78. db("salt")->where("in_salt='" . $_var_16 . "'")->delete();
  79. $_var_18 = getapp($_var_17, 1);
  80. $_var_18 = str_replace("http://", "https://", $_var_18);
  81. }
  82. $_var_19 = geticon(db("appid")->where("in_id", $_var_17)->value("in_icon"));
  83. $_var_20 = db("appid")->where("in_id", $_var_17)->value("in_bid");
  84. $_var_21 = convert_charset(db("appid")->where("in_id", $_var_17)->value("in_name"));
  85. echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
  86. <plist version=\"1.0\">
  87. <dict>
  88. <key>items</key>
  89. <array>
  90. <dict>
  91. <key>assets</key>
  92. <array>
  93. <dict>
  94. <key>kind</key>
  95. <string>software-package</string>
  96. <key>url</key>
  97. <string><![CDATA[" . $_var_18 . "]]></string>
  98. </dict>
  99. <dict>
  100. <key>kind</key>
  101. <string>display-image</string>
  102. <key>needs-shine</key>
  103. <integer>0</integer>
  104. <key>url</key>
  105. <string><![CDATA[" . $_var_19 . "]]></string>
  106. </dict>
  107. <dict>
  108. <key>kind</key>
  109. <string>full-size-image</string>
  110. <key>needs-shine</key>
  111. <true/>
  112. <key>url</key>
  113. <string><![CDATA[" . $_var_19 . "]]></string>
  114. </dict>
  115. </array>
  116. <key>metadata</key>
  117. <dict>
  118. <key>bundle-identifier</key>
  119. <string>" . $_var_20 . "</string>
  120. <key>bundle-version</key>
  121. <string><![CDATA[1.0]]></string>
  122. <key>kind</key>
  123. <string>software</string>
  124. <key>title</key>
  125. <string><![CDATA[" . $_var_21 . "]]></string>
  126. </dict>
  127. </dict>
  128. </array>
  129. </dict>
  130. </plist>";
  131. }
  132. function proxy()
  133. {
  134. db("salt")->where("in_time", "<", strtotime("-60 seconds"))->delete();
  135. $_var_22 = explode("/", isset($_SERVER["PATH_INFO"]) ? $_SERVER["PATH_INFO"] : NULL);
  136. $_var_23 = isset($_var_22[4]) ? $_var_22[4] : NULL;
  137. $_var_24 = SafeSql(str_replace(array(".ipa", ".apk"), array("", ""), $_var_23));
  138. $_var_25 = db("salt")->where("in_salt", $_var_24)->value("in_aid");
  139. $_var_25 || exit("Access denied");
  140. $_var_26 = db("appid")->where("in_id", $_var_25)->find();
  141. $_var_27 = IN_ATTACHMENT_PATH . $_var_26["in_app"];
  142. $_var_28 = $_var_26["in_form"] == "Android" ? $_var_26["in_originalName"] : $_var_26["in_app"];
  143. $_var_29 = filesize($_var_27);
  144. header("Cache-Control: private");
  145. header("Content-Type: application/octet-stream");
  146. header("Content-Disposition: attachment; filename=" . $_var_28);
  147. header("Content-Transfer-Encoding:binary");
  148. header("Accept-Ranges: bytes");
  149. header("Expires:0");
  150. header("Cache-Control:must-revalidate");
  151. header("Pragma:public");
  152. header("Content-Length: " . $_var_29);
  153. readfile($_var_27);
  154. }
  155. }