2012-02-22 23 views
2

私はPHPに本当に新しいことを言いたいと思います... AndroidManifest.xmlを取得してアンドロイド:versionCodeとandroidを抽出するアンドロイドの.apkファイルを抽出する必要があります:versionName。PHPを使用してAndroidManifest.xmlからデータを抽出します

この情報を取得するツールがあることは知っていますが、私はこれをPHPを使用して行う必要があります。

は、ここで私はこれまで得たものです:

$zip = new ZipArchive(); 
$filename = "BluetoothChat.apk"; 
$zip_file = $zip->open($filename); 

if ($zip_file === TRUE){ 
    //print_r($zip->statName('AndroidManifest.xml')); 
    $xml = $zip->getFromName('AndroidManifest.xml'); 
    echo $xml; 
    echo "\n"; 
    $zip->close(); 
} else { 
    echo 'FAILED'; 
} 

私は成功したAPKファイルを解凍することができますが、xmlファイル自体の内容を読み取ることができません。これはアンドロイドバイナリxml形式です。

これを成功させた人はいましたか?または、正しい方向に私を向けることができますか? ありがとう!

+0

私はあなたがsiluationを発見した、同じ問題を抱えていますか? – Yousif

答えて

0

単にAPKファイルを読み取るだけではありません。 - 匿名のAndroidデベロッパー

APKのXMLファイルは、元の形式ではなく、圧縮されて圧縮されています。

したがって、apktoolを使用する必要があります。 This thread助けてくれる

+0

返事をありがとう。 APKファイルは単なるZIPファイルです。私が理解しているxmlファイルを入手するには、まずAPKを解凍する必要があります。あなたが私が研究をしている間に読んだことがあるスレッドと私はPHPのアンドロイドツールを使用しようとしています。私が本当に必要とするのは、AndroidのバイナリXMLファイルを通常のXMLファイルに変換することです。 – t0x13

+0

スレッドの最後の答えに気づいた場合は、バイナリ圧縮形式(一部)を解凍するPerlスクリプトがあります。もちろん、PHPアプリケーション内のapkツールを使用して形式をデコードすることもできます。それが私の意図でした。 – st0le

+0

私はツールを使用することを避けようとしていました..しかし、私は選択肢がなく、apktoolを使用しなければならないような他の解決策を見つけることはできません:) – t0x13

3

.apk resources/xmlファイルを抽出し、AndroidバイナリXMLファイルを解凍するためのPHPライブラリがあります。

Php Apk Parser

+0

リンクは無関係です。 – Yousif

関連する問題