2017-06-12 74 views
0

我正在嘗試製作可反編譯其他Android應用程序的Android應用程序。 我剛剛開始,但在嘗試正確處理xml類型的資源(即存儲在res/xml /下的資源)時我卡住了。解碼Android中的二進制Android xml資源

我現在面臨的問題是,這些文件包含二進制信息(據我瞭解,AAPT XML文件在包裝過程中轉換成二進制。)

此外,我所知道的工具存在像apktool,或者aapt本身的dump命令。但是,這些是基於PC的工具,而我需要在Android應用程序中解碼XML資源。

那麼,有沒有辦法在Android中做到這一點,或者我需要通過aapt代碼並將相關代碼移植到Android?

編輯:我也嘗試了Resources Android API,使用getXml()函數,它返回XmlResourceParser,但由於xml文件的二進制特性而無法使其工作。

編輯(2):基於單獨的答案,我將ApkParser集成到我的代碼中。除了對於某些XML文件(例如framework-res.apk中的XML資源),XML屬性的值被錯誤解碼之外,它適用於大多數部分。例如,XML中的所有布爾值都被報告爲「false」,而實際的XML也具有一些具有「true」值的屬性。所以,我猜ApkParser有一些限制。

我在Github上找到了以下issue這個項目,它分享了我面臨的一些問題。

請提出其他選擇。

+0

對於誰是downvoting,請提及這樣做的原因 – CodeMonkey

回答