コード例 #1
0
ファイル: Tokens.php プロジェクト: jfdesignnet/CyanogenModOTA
 private function mcCacheProps($filePath, $device, $channel)
 {
     $mc = Flight::mc();
     $cache = $mc->get($filePath);
     if (!$cache && Memcached::RES_NOTFOUND == $mc->getResultCode()) {
         $buildpropArray = explode("\n", file_get_contents('zip://' . $filePath . '#system/build.prop'));
         if ($device == $this->getBuildPropValue($buildpropArray, 'ro.product.device')) {
             $api_level = intval($this->getBuildPropValue($buildpropArray, 'ro.build.version.sdk'));
             $incremental = $this->getBuildPropValue($buildpropArray, 'ro.build.version.incremental');
             $timestamp = intval($this->getBuildPropValue($buildpropArray, 'ro.build.date.utc'));
             $url = $this->getBuildPropValue($buildpropArray, 'ro.build.ota.url');
             $cache = array($device, $api_level, $incremental, $timestamp, Utils::getMD5($filePath), $url);
             $mc->set($filePath, $cache);
             $mc->set($incremental, array($device, $channel, $filePath));
         } else {
             throw new Exception("{$device}: {$filePath} is in invalid path");
         }
     }
     assert($cache[0] == $device);
     $this->api_level = $cache[1];
     $this->incremental = $cache[2];
     $this->timestamp = $cache[3];
     $this->md5sum = $cache[4];
     $this->url = $cache[5];
 }
コード例 #2
0
ファイル: Tokens.php プロジェクト: invisiblek/CyanogenModOTA
 private function mcCacheProps($filePath, $device, $channel)
 {
     $mc = Flight::mc();
     $cache = $mc->get($filePath);
     if (true) {
         $buildpropArray = explode("\n", file_get_contents($filePath . '.build.prop'));
         if ($device == $this->getBuildPropValue($buildpropArray, 'ro.product.device') || $device == $this->getBuildPropValue($buildpropArray, 'ro.cm.device')) {
             $api_level = intval($this->getBuildPropValue($buildpropArray, 'ro.build.version.sdk'));
             $incremental = $this->getBuildPropValue($buildpropArray, 'ro.build.version.incremental');
             $timestamp = intval($this->getBuildPropValue($buildpropArray, 'ro.build.date.utc'));
             if (file_exists($filePath . '.url')) {
                 $url = explode("\n", file_get_contents($filePath . '.url'))[0];
             } else {
                 $url = 'https://' . $_SERVER['HTTP_HOST'] . '/_builds/' . explode("/", $filePath)[4];
             }
             $cache = array($device, $api_level, $incremental, $timestamp, Utils::getMD5($filePath), $url);
             $mc->set($filePath, $cache);
             $mc->set($incremental, array($device, $channel, $filePath));
         } else {
             throw new Exception("{$device}: {$filePath} is in invalid path");
         }
     }
     assert($cache[0] == $device);
     $this->api_level = $cache[1];
     $this->incremental = $cache[2];
     $this->timestamp = $cache[3];
     $this->md5sum = $cache[4];
     $this->url = $cache[5];
 }
コード例 #3
0
ファイル: Utils.php プロジェクト: invisiblek/CyanogenModOTA
 public static function mcFind($incremental)
 {
     $mc = Flight::mc();
     list($device, $channel, $zip) = $mc->get($incremental);
     if ($zip && !file_exists($zip)) {
         $mc->delete($zip);
         $mc->delete($incremental);
         $zip = NULL;
         $channel = NULL;
         $device = NULL;
     }
     return array($device, $channel, $zip);
 }