<?php

include '../ApkParser.php';
$apk = new ApkParser('EBHS.apk');
$manifest = $apk->getManifest();
$permissions = $manifest->getPermissions();
echo '<pre>';
echo "Package Name      : " . $manifest->getPackageName() . "\r\n";
echo "Vesrion           : " . $manifest->getVersionName() . " (" . $manifest->getVersionCode() . ")\r\n";
echo "Min Sdk Level     : " . $manifest->getMinSdkLevel() . "\r\n";
echo "Min Sdk Platfrom  : " . $manifest->getMinSdk()->platform['name'] . "\r\n";
echo "------------- Permssions List -------------\r\n";
foreach ($permissions as $perm => $description) {
    echo $perm . "\t=> " . $description . " \r\n";
}
 /**
 We have 4 permissions in EBHS.apk/AndroidManifest.xml
 INTERNET
 CAMERA
 BLUETOOTH
 BLUETOOTH_ADMIN
 */
 public function TestPermissions()
 {
     $apk = new ApkParser('../examples/EBHS.apk');
     $permissionArray = $apk->getManifest()->getPermissions();
     $this->assertEquals(count($permissionArray), 4);
     $this->assertArrayHasKey('INTERNET', $permissionArray, "INTERNET permission not found!");
     $this->assertArrayHasKey('CAMERA', $permissionArray, "CAMERA permission not found!");
     $this->assertArrayHasKey('BLUETOOTH', $permissionArray, "BLUETOOTH permission not found!");
     $this->assertArrayHasKey('BLUETOOTH_ADMIN', $permissionArray, "BLUETOOTH_ADMIN permission not found!");
 }
function getMobileVersion($apkfile)
{
    $result = array();
    $apkinfo = new ApkParser($apkfile);
    $manifest = $apkinfo->getManifest();
    $result['apk_version'] = $manifest->getVersionName();
    $archive = $apkinfo->getApkArchive();
    $stream = $archive->getStream("assets/total-conversion-build.user.js");
    if ($stream) {
        $header = loadUserScriptHeader($stream);
        $result['iitc_version'] = $header['@version'];
    } else {
        $result['iitc_version'] = 'unknown';
    }
    return $result;
}
include_once "code/userscript.php";
include_once "code/url/url_to_absolute.php";
include_once "code/apk/ApkParser.php";
$response = array();
$build = $_REQUEST['build'];
$mobile = isset($_REQUEST['mobile']) && $_REQUEST['mobile'];
$details = array('jonatkins' => array('path' => 'release', 'name' => 'Stable release build', 'web' => 'http://iitc.jonatkins.com/?page=download', 'mobileweb' => 'http://iitc.jonatkins.com/?page=mobile'), 'jonatkins-test' => array('path' => 'test', 'name' => 'Test build', 'web' => 'http://iitc.jonatkins.com/?page=test', 'mobileweb' => 'http://iitc.jonatkins.com/?page=test#test-mobile'), 'jonatkins-experimental' => array('path' => 'experimental', 'name' => 'Experimental build', 'web' => 'http://iitc.jonatkins.com/?page=test&build=experimental', 'mobileweb' => 'http://iitc.jonatkins.com/?page=test&build=experimental#test-mobile'), 'jonatkins-dev' => array('path' => 'dev', 'name' => 'Development builds - not for public use', 'web' => 'http://iitc.jonatkins.com/?page=test&build=dev', 'mobileweb' => 'http://iitc.jonatkins.com/?page=test&build=dev#test-mobile'), 'local' => array('path' => NULL, 'name' => 'Local build - no update check available'));
if (array_key_exists($build, $details)) {
    $info = $details[$build];
    $pageurl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] ? "https" : "http") . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $response['name'] = $info['name'];
    $dir = $info['path'];
    if ($mobile) {
        $apkfile = $dir . '/IITC_Mobile-' . $dir . '.apk';
        if (file_Exists($apkfile)) {
            $apkinfo = new ApkParser($apkfile);
            $manifest = $apkinfo->getManifest();
            $response['mobile'] = array('versionstr' => $manifest->getVersionName(), 'versioncode' => $manifest->getVersionCode(), 'downloadurl' => url_to_absolute($pageurl, $apkfile), 'pageurl' => $info['mobileweb']);
            $archive = $apkinfo->getApkArchive();
            $stream = $archive->getStream("assets/total-conversion-build.user.js");
            if ($stream) {
                $header = loadUserScriptHeader($stream);
                $response['mobile']['iitc_version'] = $header['@version'];
            }
        } else {
            $response['error'] = 'Failed to find .apk file ' . $apkfile;
        }
    } else {
        // desktop - .user.js scripts
        // load main script version
        $iitc_details = loadUserScriptHeader("{$dir}/total-conversion-build.user.js");
<?php

include '../ApkParser.php';
$apk = new ApkParser('EBHS.apk');
header("Content-Type:text/xml;Charset=UTF-8");
echo $apk->getManifest()->getXmlString();
Beispiel #6
0
 $r_size = $file1['size'] = $f['size'];
 $r_width = $file1['width'] = isset($img['width']) ? $img['width'] : 0;
 $r_height = $file1['height'] = isset($img['height']) ? $img['height'] : 0;
 $r_oname = $file1['oname'] = substr($f['name'], 0, strrpos($f['name'], '.'));
 switch ($f['extension']) {
     case 'zip':
     case 'rar':
         $resource_type = 3;
         break;
     case 'flv':
         $resource_type = 2;
         break;
     case 'apk':
         $resource_type = 4;
         //插入APK提取资源参数
         $p = new ApkParser();
         $res = $p->open(dirname(__FILE__) . '/../' . $resource_url);
         $xml = $p->getXML();
         echo $xml;
         preg_match('~android:versionName="(.*?)"~', $xml, $matches);
         $version = '';
         if (count($matches) > 1) {
             $version = $matches[1];
         }
         preg_match('~android:minSdkVersion="(.*?)"~', $xml, $matches);
         $minsys = '';
         if (count($matches) > 1) {
             $minsys = get_android($matches[1]);
         }
         preg_match('~package="(.*?)"~', $xml, $matches);
         $packname = '';
Beispiel #7
0
<?php

include __DIR__ . "/IpaParser.php";
include __DIR__ . "/ApkParser.php";
#apk解析
$main = new ApkParser();
$main->open('blabla.apk');
echo $main->getPackage();
echo $main->getVersionName();
echo $main->getVersionCode();
echo $main->getAppName();
#ipa解析
$main = new IpaParser();
echo $main->parse('blabla.ipa');
echo $main->getPackage();
echo $main->getVersion();
echo $main->getAppName();
var_dump($main->getPlist());
<?php

include '../ApkParser.php';
$apk = new ApkParser('EBHS.apk');
$extractFolder = 'extract_folder';
if (is_dir($extractFolder) || mkdir($extractFolder)) {
    $apk->extractTo($extractFolder);
}