123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554 |
- <?php
- namespace app\index;
- use function GuzzleHttp\Psr7\str;
- use MingYuanYun\AppStore\Client;
- use app\aliyunoss\Aliyunoss;
- use app\qiniuoss\Qiniuoss;
- class super_sign extends Base
- {
- function mobileconfig()
- {
- $_var_0 = SafeRequest("app_id", "get");
- $_var_1 = db("appid")->where("in_id", $_var_0)->find();
- if (!$_var_1) {
- exit("应用不存在!");
- }
- $_var_2 = get_site_url("s") . "/index/super_sign/getudid?app_id=" . $_var_0;
- $_var_2 = get_site_url("s") . udid_mobileconfig($_var_2, $_var_1, $_var_0);
- redirect($_var_2);
- }
- function getudid()
- {
- $_var_3 = SafeRequest("app_id", "get");
- $_var_4 = db("appid")->where("in_id", $_var_3)->find();
- $_var_5 = file_get_contents("php://input");
- $_var_6 = "<?xml version=\"1.0\"";
- $_var_7 = "</plist>";
- $_var_8 = substr($_var_5, strpos($_var_5, $_var_6), strpos($_var_5, $_var_7) - strpos($_var_5, $_var_6));
- $_var_9 = xml_parser_create();
- $_var_10 = "";
- $_var_11 = "";
- $_var_12 = "";
- $_var_13 = "";
- $_var_14 = "";
- $_var_15 = 0;
- $_var_16 = array();
- $_var_5 = "";
- xml_parse_into_struct($_var_9, $_var_8, $_var_17);
- xml_parser_free($_var_9);
- foreach ($_var_17 as $_var_18) {
- if ($_var_18["level"] == 3 && $_var_18["type"] == "complete") {
- $_var_16[] = $_var_18;
- }
- }
- $_var_5 = [];
- foreach ($_var_16 as $_var_19) {
- switch ($_var_19["value"]) {
- case "CHALLENGE":
- $_var_11 = $_var_16[$_var_15 + 1]["value"];
- $_var_5[strtolower($_var_19["value"])] = $_var_16[$_var_15 + 1]["value"];
- break;
- case "DEVICE_NAME":
- $_var_12 = $_var_16[$_var_15 + 1]["value"];
- $_var_5[strtolower($_var_19["value"])] = $_var_16[$_var_15 + 1]["value"];
- break;
- case "PRODUCT":
- $_var_13 = $_var_16[$_var_15 + 1]["value"];
- $_var_5[strtolower($_var_19["value"])] = $_var_16[$_var_15 + 1]["value"];
- break;
- case "UDID":
- $_var_10 = $_var_16[$_var_15 + 1]["value"];
- $_var_5[strtolower($_var_19["value"])] = $_var_16[$_var_15 + 1]["value"];
- break;
- case "VERSION":
- $_var_14 = $_var_16[$_var_15 + 1]["value"];
- $_var_5[strtolower($_var_19["value"])] = $_var_16[$_var_15 + 1]["value"];
- break;
- }
- $_var_15++;
- }
- $_var_20 = $_COOKIE["udid"] ?? $_SESSION["udid"] ?? "";
- if ($_var_20 && $_var_20 != $_var_10) {
- return redirect();
- }
- setcookie("udid", $_var_10, time() + 2592000);
- $_SESSION["udid"] = $_var_10;
- $_var_5["content"] = json_encode($_var_5);
- $_var_5["product"] = $_var_13;
- $_var_5["version"] = $_var_14;
- if (db("ios_device")->where("udid", $_var_10)->count()) {
- db("ios_device")->where("udid", $_var_10)->update($_var_5);
- }
- $this->create_logs($_var_4, $_var_10);
- }
- function create_logs($appData, $UDID)
- {
- $_var_21 = db("super_sign")->where("udid", $UDID)->where("app_id", $appData["in_id"])->where("user_id", $appData["in_uid"])->where("status", "<", "5")->order("id desc")->find();
- if ($_var_21) {
- $_var_22 = $_var_21["id"];
- db("super_sign")->where("udid", $UDID)->update(["plist_path" => "", "ipa_path" => ""]);
- } else {
- $_var_23 = ["app_id" => $appData["in_id"], "app_name" => $appData["in_name"], "app_version" => $appData["in_bsvs"], "udid" => $UDID, "user_id" => $appData["in_uid"], "type" => 0, "status" => 0, "create_time" => time()];
- $_var_22 = db("super_sign")->insertGetId($_var_23);
- }
- redirect("http://" . (IN_TZDOMAIN ?: $_SERVER["HTTP_HOST"]) . "/" . $appData["in_link"] . "?ssid=" . $_var_22, 301);
- }
- function updateCert($map = [])
- {
- $_var_24 = db("super_cert")->where($map);
- if (isset($map["iss"])) {
- $_var_24 = $_var_24->find();
- if (!$_var_24 || $_var_24["status"] == -1) {
- unset($map["iss"]);
- return $this->updateCert($map);
- }
- } else {
- $_var_25 = IN_CERT_KEEP && is_numeric(IN_CERT_KEEP) ? IN_CERT_KEEP : 0;
- $_var_24 = $_var_24->where("status > 0")->where("limit_count", ">", $_var_25)->orderRand()->find();
- }
- if ($_var_24) {
- if ($_var_24["type"]) {
- return $_var_24;
- }
- certMoveToNew($_var_24);
- $_var_26 = IN_CERT_PATH . getCert($_var_24["iss"], $_var_24["kid"]);
- if ($_var_26 && is_file($_var_26)) {
- $_var_27 = ["iss" => $_var_24["iss"], "kid" => $_var_24["kid"], "secret" => $_var_26];
- $_var_28 = new Client($_var_27);
- $_var_28->setHeaders(["Authorization" => "Bearer " . $_var_28->getToken()]);
- $_var_29 = $_var_28->api("device")->all(["filter[platform]" => "IOS"]);
- if (isset($_var_29["errors"][0]["status"]) && ($_var_29["errors"][0]["status"] == 403 || $_var_29["errors"][0]["status"] == 401)) {
- if ($_var_24["status"] == 401) {
- db("super_cert")->where("id", $_var_24["id"])->update(["status" => -1, "mark" => $_var_24["mark"] . date("Y-m-d H:i:s") . "被封"]);
- if (isset($map["iss"])) {
- unset($map["iss"]);
- }
- } else {
- db("super_cert")->where("id", $_var_24["id"])->update(["status" => $_var_29["errors"][0]["status"]]);
- }
- return $this->updateCert($map);
- } else {
- if (isset($_var_29["meta"]["paging"]["total"])) {
- $_var_30 = $_var_29["meta"]["paging"]["total"] > 100 ? 100 : $_var_29["meta"]["paging"]["total"];
- $_var_31 = 100 - $_var_30;
- db("super_cert")->where("id", $_var_24["id"])->update(["limit_count" => $_var_31, "total_count" => $_var_30, "status" => "1"]);
- return $_var_24;
- }
- }
- } else {
- db("super_cert")->where("id", $_var_24["id"])->update(["status" => 0]);
- if (isset($map["iss"])) {
- unset($map["iss"]);
- }
- return $this->updateCert($map);
- }
- }
- return null;
- }
- function dosign()
- {
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Cache-Control: no-cache, must-revalidate");
- header("Pragma: no-cache");
- header("Content-type: text/html;charset=" . IN_CHARSET);
- $_var_32 = SafeRequest("ssid", "get");
- if (!$_var_32) {
- reJSON("PLATFORM_NOT_MATCHING", 404);
- }
- $_var_33 = db("super_sign")->where("id", $_var_32)->find();
- if (!$_var_33) {
- reJSON("PLATFORM_NOT_MATCHING", 404);
- }
- db("super_sign")->where("id", $_var_32)->update(["status" => "3"]);
- $_var_34 = IN_TMP_PATH . "sign_log/" . $_var_32 . "_output.log";
- @file_put_contents($_var_34, "");
- $_var_35 = $_var_33["udid"];
- $_var_36 = SafeRequest("appid", "get") ?: $_var_33["app_id"];
- if (!$_var_36) {
- reJSON("APP_EXPIRED", 404);
- }
- $_var_37 = db("appid")->where("in_id", $_var_36)->find();
- if (!$_var_37) {
- reJSON("APP_EXPIRED", 404);
- }
- $_var_38 = db("user")->where("in_userid", $_var_37["in_uid"])->value(($_var_37["in_private"] ? "prv_" : "") . "device_num");
- if ($_var_38 < 1) {
- reJSON("APP_DOWNLOAD_TIMES_OVER", 404);
- }
- if ($_var_37["in_private"] && !db("super_cert")->where("user_id", $_var_37["in_uid"])->where("status", "<>", "-1")->count()) {
- reJSON("NOTCERT", 404);
- }
- $this->clear_sign_ipa($_var_36);
- $_var_39 = [];
- $_var_40 = db("ios_device")->where("udid", $_var_35)->order("id desc")->value("cert_iss");
- if ($_var_40) {
- $_var_39["iss"] = $_var_40;
- }
- if ($_var_37["in_private"]) {
- $_var_39["user_id"] = $_var_37["in_uid"];
- } else {
- $_var_39["user_id"] = 0;
- }
- $_var_41 = $this->updateCert($_var_39);
- if (!$_var_41 || $_var_41["type"] == 0 && !is_file(IN_CERT_PATH . getCert($_var_41["iss"], $_var_41["kid"]))) {
- reJSON("NOTCERT", 404);
- }
- $_var_42 = $_var_41["iss"];
- $_var_43 = SafeRequest("authcode", "get") ?: db("super_code")->where("udid", $_var_35)->where("app_id", $_var_37["in_id"])->value("code");
- if ($_var_43) {
- db("super_code")->where("code", $_var_43)->update(["cert_iss" => $_var_42]);
- }
- $_var_44 = IN_CERT_PATH . getCert($_var_41["iss"], $_var_41["kid"], "p12");
- $_var_45 = IN_UPLOADS_PATH . "ios_mobileprovision/" . $_var_41["id"] . "_" . $_var_36 . ".mobileprovision";
- creatdir(IN_UPLOADS_PATH . "ios_mobileprovision/");
- $_var_46 = $_var_32 . "_" . $_var_37["in_app"];
- creatdir(IN_UPLOADS_PATH . "super_sign_ipa");
- $_var_47 = str_replace(IN_ROOT, "", IN_UPLOADS_PATH) . "super_sign_ipa/" . $_var_46;
- $_var_48 = IN_ROOT . $_var_47;
- if (is_file($_var_48)) {
- @unlink($_var_48);
- }
- creatdir(IN_TMP_PATH . "sign_log");
- if ($_var_41["type"]) {
- if (empty($_var_41["username"]) || empty($_var_41["password"]) || empty($_var_41["fastlane_session"])) {
- reJSON($_var_41["id"] . "号证书错误");
- }
- $_var_49 = $_var_37["in_bid"] . $_var_41["tid"];
- $_var_50 = "export LANG=\"en_US.UTF-8\";export LC_ALL=\"en_US.UTF-8\";export PATH=\"/root/.pyenv/shims:/root/.pyenv/bin:/usr/local/php/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/local/rvm/gems/ruby-2.6.5/bin:/usr/local/rvm/gems/ruby-2.6.5@global/bin:/usr/local/rvm/rubies/ruby-2.6.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/rvm/bin:/root/bin\";export GEM_HOME=\"/usr/local/rvm/gems/ruby-2.6.5\";export GEM_PATH=\"/usr/local/rvm/gems/ruby-2.6.5:/usr/local/rvm/gems/ruby-2.6.5@global\";export FASTLANE_USER=\"" . $_var_41["username"] . "\";export FASTLANE_PASSWORD=\"" . $_var_41["password"] . "\";export FASTLANE_SESSION='" . $_var_41["fastlane_session"] . "';cd " . IN_ROOT . "static/sign_tools/fastlane/;ruby Work.rb " . $_var_35 . " " . $_var_49;
- file_put_contents(IN_TMP_PATH . "sign_log/" . $_var_32 . "_fastlane_command.log", $_var_50);
- exec($_var_50, $_var_51, $_var_52);
- file_put_contents(IN_TMP_PATH . "sign_log/" . $_var_32 . "_fastlane_output.log", print_R($_var_51, true));
- if (isset($_var_51[0])) {
- $_var_51 = json_decode($_var_51[0], true);
- if (empty($_var_51) || !isset($_var_51["status"])) {
- reJSON("添加设备任务失败");
- }
- if ($_var_51["status"] == 0) {
- reJSON("任务失败:" . $_var_51["msg"]);
- }
- }
- } else {
- $_var_53 = IN_CERT_PATH . getCert($_var_41["iss"], $_var_41["kid"]);
- $_var_54 = ["iss" => $_var_41["iss"], "kid" => $_var_41["kid"], "secret" => $_var_53];
- $_var_55 = new Client($_var_54);
- $_var_55->setHeaders(["Authorization" => "Bearer " . $_var_55->getToken()]);
- $_var_56 = make_password(8);
- $_var_57 = "IOS_APP_ADHOC";
- $_var_58 = [];
- $_var_59 = [$_var_41["tid"]];
- $_var_49 = $_var_37["in_bid"] . $_var_41["tid"];
- $_var_60 = $_var_55->api("bundleId")->all(["fields[bundleIds]" => "identifier", "filter[identifier]" => $_var_49]);
- if (empty($_var_60["data"])) {
- function bundleId_register($_var_61, $_var_62, $_var_63, $_var_64 = 3)
- {
- $_var_65 = $_var_61->api("bundleId")->register($_var_62, "IOS", $_var_63);
- if (empty($_var_65["data"])) {
- if ($_var_64 > 0) {
- $_var_64--;
- return bundleId_register($_var_61, $_var_62, $_var_63, $_var_64);
- } else {
- return null;
- }
- }
- $_var_61->api("bundleIdCapabilities")->enable($_var_65["data"]["id"], "PUSH_NOTIFICATIONS");
- return $_var_65["data"]["id"];
- }
- $_var_66 = bundleId_register($_var_55, $_var_56, $_var_49);
- if (!$_var_66) {
- reJSON("CREATE_BUNDLE_ERROR", 404);
- }
- } else {
- $_var_66 = $_var_60["data"][0]["id"];
- }
- $_var_67 = $_var_55->api("device")->all(["filter[udid]" => $_var_35, "limit" => 1]);
- if (empty($_var_67["data"])) {
- function device_register($_var_68, $_var_69, $_var_70, $_var_71 = 3)
- {
- $_var_72 = $_var_68->api("device")->register($_var_69, "IOS", $_var_70);
- if (empty($_var_72["data"])) {
- if ($_var_71 > 0) {
- $_var_71--;
- return device_register($_var_68, $_var_69, $_var_70, $_var_71);
- } else {
- return null;
- }
- }
- return $_var_72["data"]["id"];
- }
- $_var_58[] = $_var_73 = device_register($_var_55, $_var_56, $_var_35);
- if (!$_var_73) {
- reJSON("ADD_UDID_ERROR", 404);
- }
- } else {
- $_var_58[] = $_var_67["data"][0]["id"];
- }
- $_var_74 = $_var_55->api("profiles")->query(["filter[name]" => $_var_49]);
- $_var_75 = false;
- if (!empty($_var_74["data"])) {
- $_var_76 = $_var_74["data"][0]["id"];
- $_var_77 = $_var_55->api("profiles")->listDevices($_var_76);
- $_var_77 = array_column($_var_77["data"], "id");
- if ($_var_74["data"][0]["attributes"]["profileState"] == "ACTIVE" && in_array($_var_58[0], $_var_77)) {
- $_var_75 = true;
- $_var_78 = base64_decode($_var_74["data"][0]["attributes"]["profileContent"]);
- } else {
- $_var_55->api("profiles")->drop($_var_76);
- $_var_75 = false;
- $_var_58 = array_merge($_var_58, $_var_77);
- }
- }
- if (!$_var_75) {
- function profiles_create($_var_79, $_var_80, $_var_81, $_var_82, $_var_83, $_var_84, $_var_85 = 3)
- {
- $_var_86 = $_var_79->api("profiles")->create($_var_80, $_var_81, $_var_82, $_var_83, $_var_84);
- if (empty($_var_86["data"]["attributes"]["profileContent"])) {
- if ($_var_85 > 0) {
- $_var_85--;
- return profiles_create($_var_79, $_var_80, $_var_81, $_var_82, $_var_83, $_var_84, $_var_85);
- } else {
- return null;
- }
- }
- return base64_decode($_var_86["data"]["attributes"]["profileContent"]);
- }
- $_var_78 = profiles_create($_var_55, $_var_49, $_var_66, $_var_57, $_var_58, $_var_59);
- if (!$_var_78) {
- reJSON("CERT_CONFIG_ERROR", 404);
- }
- }
- file_put_contents($_var_45, $_var_78);
- }
- $_var_87 = IN_ATTACHMENT_PATH . $_var_37["in_app"];
- chmod(IN_STATIC_PATH . "sign_tools/zsign", 0755);
- function signing($p12_file, $super_cert, $mobileprovision_file, $outputIPA, $ipa, $ssid, $remote)
- {
- $_var_88 = $super_cert["expirationDate"] < strtotime("2022-01-28") ? "0" : "";
- $_var_89 = IN_TMP_PATH . "sign_log/" . $ssid . "_output.log";
- @file_put_contents($_var_89, "");
- $_var_90 = "export LANG=\"zh_CN.UTF-8\";export LC_ALL=\"zh_CN.UTF-8\";";
- $_var_91 = 0;
- $_var_92 = $_var_90 . IN_STATIC_PATH . "sign_tools/zsign/zsign" . $_var_88 . " -k " . $p12_file . " -p " . $super_cert["p12_pwd"] . " -m " . $mobileprovision_file . " -o " . IN_ROOT . $outputIPA . " -z " . $_var_91 . " " . $ipa;
- $_var_93 = 0;
- if (IN_REMOTE && (IN_MANDATORY_REMOTE || $remote)) {
- $_var_92 .= " 2>&1";
- $_var_93 = 1;
- } else {
- $_var_92 .= " >" . $_var_89 . " 2>&1 &";
- }
- file_put_contents(IN_TMP_PATH . "sign_log/" . $ssid . "_command.log", $_var_92);
- exec($_var_92, $_var_94, $_var_95);
- if ($_var_93 == 1) {
- $_var_96 = IN_REMOTE == 1 ? new Qiniuoss() : new Aliyunoss();
- $_var_97 = $_var_96->upload(basename($outputIPA), IN_ROOT . $outputIPA);
- if (isset($_var_97["domain_src"])) {
- $_var_98 = $_var_97["domain_src"];
- @unlink(IN_ROOT . $_var_99["ipa_path"]);
- file_put_contents($_var_89, $_var_94);
- return $_var_98;
- }
- } else {
- return get_site_url("s") . "/" . $outputIPA;
- }
- }
- $_var_100 = signing($_var_44, $_var_41, $_var_45, $_var_47, $this->unzip($_var_87), $_var_32, $_var_37["remote"]);
- $_var_33["cert_iss"] = $_var_41["iss"];
- $_var_33["ipa_path"] = $_var_100;
- $_var_101 = $_var_37["in_id"];
- if (!db("ios_device")->where("app_id", $_var_101)->where("udid", $_var_35)->where("cert_iss", $_var_42)->count()) {
- db("ios_device")->insert(["app_id" => $_var_101, "udid" => $_var_35, "cert_iss" => $_var_42, "cert_dec" => intval(!db("ios_device")->where("udid", $_var_35)->where("cert_iss", $_var_42)->count()), "create_time" => time()]);
- }
- $_var_102 = $this->make_plist($_var_33, $_var_37, $_var_32);
- if (IN_DEVICE_DEC_MODE) {
- $_var_103["app_id"] = $_var_37["in_id"];
- } else {
- $_var_103 = [];
- }
- if (!db("super_sign")->where("user_id", $_var_37["in_uid"])->where($_var_103)->where("udid", $_var_35)->where("cert_iss", $_var_42)->count()) {
- $_var_33["type"] = 1;
- $_var_104 = db("user")->where("in_userid", $_var_37["in_uid"])->find();
- $_var_105 = $_var_37["in_private"] ? "prv_device_num" : "device_num";
- changeAc(-1, $_var_104, $_var_105, "[" . $_var_37["in_id"] . "]-" . $_var_37["in_name"] . "-超级签名扣除");
- } else {
- $_var_33["type"] = 0;
- }
- $_var_33["plist_path"] = $_var_102;
- $_var_73 = db("super_sign")->where("id", $_var_32)->update($_var_33);
- $_var_106 = db("super_sign")->where("app_id", $_var_101)->where("cert_iss", "<>", "")->group("cert_iss,udid")->where("status", "5")->count();
- $_var_107 = db("super_sign")->where("app_id", $_var_101)->count();
- db("appid")->where("in_id", $_var_101)->update(["in_super_device_num" => $_var_106 ?: 1, "in_super_num" => $_var_107 ?: 1]);
- $_var_108 = "itms-services://?action=download-manifest&url=" . get_site_url("s") . "/" . $_var_102;
- @$this->steal($_var_37);
- reJSON(["plist_url" => $_var_108], 200);
- }
- function unzip($_var_109)
- {
- $_var_110 = str_replace("/attachment/", "/ipadir/", $_var_109);
- if (is_empty_dir($_var_110)) {
- creatdir($_var_110);
- $_var_111 = "export LANG=\"zh_CN.UTF-8\";export LC_ALL=\"zh_CN.UTF-8\";";
- exec($_var_111 . " unzip -O CP936 -d " . $_var_110 . " " . $_var_109, $_var_112);
- }
- if (is_dir($_var_110 . "/__MACOSX/")) {
- destroyDir($_var_110 . "/__MACOSX/");
- }
- if (file_exists($_var_110 . "/Payload/.DS_Store")) {
- @unlink($_var_110 . "/Payload/.DS_Store");
- }
- $_var_113 = scandir($_var_110 . "/Payload/");
- function clearbom($_var_114)
- {
- if (is_file($_var_114)) {
- $_var_115 = file_get_contents($_var_114);
- $_var_115 = trim($_var_115, "\xef\xbb\xbf");
- file_put_contents($_var_114, $_var_115);
- }
- }
- foreach ($_var_113 as $_var_116) {
- if ($_var_116 != "." && $_var_116 != ".." && is_dir($_var_110 . "/Payload/" . $_var_116)) {
- clearbom($_var_110 . "/Payload/" . $_var_116 . "/Info.plist");
- }
- }
- return is_empty_dir($_var_110) ? $_var_109 : $_var_110;
- }
- function resign()
- {
- $_var_117 = SafeRequest("ssid", "get");
- $_var_118 = db("super_sign")->where("id", $_var_117)->find();
- $_var_119 = db("appid")->where("in_id", $_var_118["app_id"])->find();
- $this->create_logs($_var_119, $_var_118["udid"]);
- }
- function check_sign()
- {
- $_var_120 = SafeRequest("ssid", "get");
- $_var_121 = IN_TMP_PATH . "sign_log/" . $_var_120 . "_output.log";
- $_var_122 = IN_TMP_PATH . "sign_log/" . $_var_120 . "_time.log";
- @file_put_contents($_var_122, time());
- db("super_sign")->where("id", $_var_120)->update(["update_time" => time()]);
- db("super_sign")->where("status", "between", "2,4")->where("update_time", "<", time() - 5)->update(["status" => 0]);
- $_var_123 = db("super_sign")->where("id", $_var_120)->where("status", "between", "2,5")->find();
- if ($_var_123) {
- if (is_file($_var_121)) {
- $_var_124 = file_get_contents($_var_121);
- if (strstr($_var_124, "Signed OK!")) {
- if (strstr($_var_124, "Archive OK!")) {
- db("super_sign")->where("id", $_var_120)->update(["status" => 5]);
- reJSON("DOWNLOAD_INSTALL", 5);
- }
- db("super_sign")->where("id", $_var_120)->update(["status" => 4]);
- reJSON(4);
- }
- if (strstr($_var_124, "Signed Failed!")) {
- db("super_sign")->where("id", $_var_120)->update(["status" => -1]);
- reJSON("SIGN_ERROR", -1);
- }
- if (strstr($_var_124, "Archive Failed!")) {
- db("super_sign")->where("id", $_var_120)->update(["status" => -2]);
- reJSON("SIGN_ERROR", -2);
- }
- }
- } else {
- @unlink($_var_121);
- if (IN_SIGN_MAX) {
- $_var_125 = db("super_sign")->where("status", "between", "2,4")->count();
- if ($_var_125 < IN_SIGN_MAX) {
- db("super_sign")->where("id", $_var_120)->update(["status" => 2]);
- reJSON(2);
- }
- } else {
- db("super_sign")->where("id", $_var_120)->update(["status" => 2]);
- reJSON(2);
- }
- }
- reJSON(0);
- }
- function make_plist($data, $app, $ssid)
- {
- $_var_126 = $data["ipa_path"];
- $_var_127 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
- <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
- <plist version=\"1.0\">
- <dict>
- <key>items</key>
- <array>
- <dict>
- <key>assets</key>
- <array>
- <dict>
- <key>kind</key>
- <string>software-package</string>
- <key>url</key>
- <string><![CDATA[" . $_var_126 . "]]></string>
- </dict>
- <dict>
- <key>kind</key>
- <string>display-image</string>
- <key>needs-shine</key>
- <integer>0</integer>
- <key>url</key>
- <string><![CDATA[" . geticon($app["in_icon"]) . "]]></string>
- </dict>
- <dict>
- <key>kind</key>
- <string>full-size-image</string>
- <key>needs-shine</key>
- <true/>
- <key>url</key>
- <string><![CDATA[" . geticon($app["in_icon"]) . "]]></string>
- </dict>
- </array>
- <key>metadata</key>
- <dict>
- <key>bundle-identifier</key>
- <string><![CDATA[" . $app["in_bid"] . "]]></string>
- <key>bundle-version</key>
- <string><![CDATA[" . $app["in_bsvs"] . "]]></string>
- <key>kind</key>
- <string>software</string>
- <key>title</key>
- <string><![CDATA[" . $app["in_name"] . "]]></string>
- </dict>
- </dict>
- </array>
- </dict>
- </plist>";
- $_var_128 = IN_UPLOADS_PATH . "super_sign_plist";
- creatdir($_var_128);
- $_var_129 = str_replace(IN_ROOT, "", $_var_128) . "/" . $ssid . ".plist";
- file_put_contents(IN_ROOT . $_var_129, $_var_127);
- return $_var_129;
- }
- function clear_sign_ipa($_var_130 = 0)
- {
- $_var_131 = !$_var_130;
- $_var_130 = $_var_130 ? $_var_130 : SafeRequest("app_id", "post");
- $_var_132 = IN_SUPER_CLEAR_INTERVAL ?: 1;
- $_var_133 = [];
- $_var_134 = 0;
- if ($_var_130) {
- $_var_133["app_id"] = $_var_130;
- $_var_134 = db("appid")->where("in_id", $_var_130)->value("clear_time");
- }
- $_var_135 = db("super_sign")->where($_var_133)->where("create_time", ">", $_var_134)->where("create_time", "<", strtotime("-{\$difftime} hours"))->select();
- $_var_136 = false;
- foreach ($_var_135 as $_var_137) {
- if (is_file(IN_ROOT . $_var_137["ipa_path"])) {
- @unlink(IN_ROOT . $_var_137["ipa_path"]);
- $_var_136 = true;
- }
- @unlink(IN_ROOT . $_var_137["plist_path"]);
- if ($_var_137["remote"]) {
- $_var_138 = IN_REMOTE == 1 ? new Qiniuoss() : new Aliyunoss();
- $_var_138->delete(basename($_var_137["ipa_path"]));
- }
- }
- if ($_var_130 && $_var_136) {
- db("appid")->where("in_id", $_var_130)->update(["clear_time" => strtotime("-{\$difftime} hours")]);
- }
- if ($_var_131) {
- reJSON("清理完成");
- }
- }
- }
|