2012-02-22 108 views
2

只想提一提,我對PHP真的很陌生... 所以我需要提取android.apk文件,抓取AndroidManifest.xml然後解壓包,android:versionCode和android :的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文件本身的內容。它採用android二進制xml格式。

有沒有人成功地做過這件事?或者可以將我指向正確的方向? 非常感謝!

+0

我有同樣的問題,你有沒有找到siluation? – Yousif 2015-06-05 13:51:22

回答

0

其中一個不會簡單閱讀APK文件。 - 匿名Android開發者

APK中的XML文件不是原始格式,而是壓縮和打包。所以你需要使用apktoolThis thread將幫助

+0

感謝您的回覆。 APK文件只是一個ZIP文件。 APK需要首先解壓縮才能獲得xml文件,據我瞭解。你提到的線程我在研究之前已經閱讀過,我試圖使用PHP而不是android工具。我真正需要做的是將android二進制xml文件轉換爲常規的xml文件。 – t0x13 2012-02-22 06:49:16

+0

如果您注意到線程上的最後一個答案,那麼就有一個解壓二進制壓縮格式(部分)的Perl腳本...當然,您可以簡單地使用PHP應用程序中的apk工具來解碼格式。這是我的意圖。 – st0le 2012-02-23 04:20:44

+0

我試圖避免使用任何工具..但沒有找到其他解決方案看起來像我沒有選擇,將不得不使用apktool :) – t0x13 2012-02-24 05:23:11

3

有一個提取.apk資源/ xml文件的PHP庫,並且還解壓縮Android二進制XML文件。

Php Apk Parser

+0

鏈接是無關緊要的。 – Yousif 2015-06-05 13:57:07