亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

apk反編譯工具Apktool的安裝與使用教程

  發(fā)布時(shí)間:2014-08-13 14:31:01   作者:佚名   我要評(píng)論
APKTool是GOOGLE提供的APK編譯工具,需要JAVA運(yùn)行環(huán)境,推薦使用JDK1.6或者JDK1.7。 下面就一起來(lái)看看詳情了解一下該怎么安裝使用吧

APKTool是GOOGLE提供的APK編譯工具,需要JAVA運(yùn)行環(huán)境,推薦使用JDK1.6或者JDK1.7。 下面就一起來(lái)看看詳情了解一下該怎么安裝使用吧



如果你想對(duì)APK文件進(jìn)行修改,那么就不可避免的要使用到APKTool。論壇里有很多關(guān)于ROM美化的帖子都需要自己動(dòng)手修改APK文件,比如修改framework-res.apk、systemUI.apk等等。

相信各位有不少人看了后都想親自來(lái)修改一番,但是結(jié)果卻是遇到了各式各樣的錯(cuò)誤卻無(wú)法進(jìn)行改正,甚至都不知道自己錯(cuò)在哪里。

一.APKTOOL使用環(huán)境配置

1.安裝JAVA并設(shè)置環(huán)境變量。

下載安裝都很簡(jiǎn)單,關(guān)鍵是安裝完后還需要親自設(shè)置環(huán)境變量以方便其他程序能夠條用JAVA。

以WIN7為例,在桌面上右鍵點(diǎn)擊計(jì)算機(jī)——>屬性——>高級(jí)系統(tǒng)設(shè)置——>環(huán)境變量——>在下邊的系統(tǒng)變量里新建一個(gè)變量,變量名為JAVA_HOME,值為JAVA的安裝路徑,比如我的是H:\ProgramFiles\Java\jdk1.6.0_26

二.APKTool的安裝

1.其實(shí)這個(gè)談不上安裝,不過(guò)如果你愿意的話可以把下載到的APKTOOL中的三個(gè)文件(aapt.exe、apktool.bat、apktool.jar)解壓縮到你的Windows安裝目錄下,以方便使用Dos命令.

2.可能有些人下載的APKTOOL里有個(gè)安裝的bat文件,并且有另外兩個(gè)方便使用的bat文件,在這里我不推薦大家使用這些bat文件,雖然使用起來(lái)很方便(其實(shí)我并不覺得方便),但是如果出現(xiàn)錯(cuò)誤不方便查看。

三.APKTool的使用

1.decode

該命令用于進(jìn)行反編譯apk文件,一般用法為

apktool d <file.apk> <dir>

<file.apk>代表了要反編譯的apk文件的路徑,最好寫絕對(duì)路徑,比如C:\MusicPlayer.apk

<dir>代表了反編譯后的文件的存儲(chǔ)位置,比如C:\MusicPlayer

如果你給定的<dir>已經(jīng)存在,那么輸入完該命令后會(huì)提示你,并且無(wú)法執(zhí)行,需要你重新修改命令加入-f指令

apktool d –f <file.apk> <dir>

這樣就會(huì)強(qiáng)行覆蓋已經(jīng)存在的文件

2.build

該命令用于編譯修改好的文件,一般用法為

apktool b <dir>

這里的<dir>就是剛才你反編譯時(shí)輸入的<dir>(如C:\MusicPlayer),輸入這行命令后,如果一切正常,你會(huì)發(fā)現(xiàn)C:\MusicPlayer內(nèi)多了2個(gè)文件夾build和dist,其中分別存儲(chǔ)著編譯過(guò)程中逐個(gè)編譯的文件以及最終打包的apk文件。

3.install-framework

該命令用于為APKTool安裝特定的framework-res.apk文件,以方便進(jìn)行反編譯一些與ROM相互依賴的APK文件。具體情況請(qǐng)看常見問(wèn)題

四.常見問(wèn)題

1.關(guān)于安裝和管理framework文件

以下大部分其實(shí)是翻譯自http://code.google.com/p/android-apktool/wiki/FrameworkFiles

一般來(lái)說(shuō),你在使用apktool進(jìn)行反編譯前不需要做其他的事情,然而由于有的廠商,如HTC,三星等,他們定制了framework文件并且在他們的系統(tǒng)應(yīng)用中使用了這些文件,這時(shí),為了能正常的反編譯這些apk文件,你就必須從你的設(shè)備中拷貝出framework文件并且安裝到apktool中。

舉一個(gè)例子,比如你想反編譯HTCHero這款手機(jī)中的HtcContacts.apk,當(dāng)你嘗試反編譯的時(shí)候,你會(huì)得到以下錯(cuò)誤信息。

1.$ apktool d HtcContacts.apk
2.I: Loading resource table...
3.I: Decoding resources...
4.I: Loading resource table from file: /home/brutall/apktool/framework/1.apk
5.W: Could not decode attr value, using undecoded value instead: ns=android, name=drawable, value=0x02020542
6....
7.W: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x02020520
8.Can't find framework resources for package of id: 2. You must install proper framework files, see project website for more info.
復(fù)制代碼

這就是在通知你必須先安裝HTC定制的framework文件,事實(shí)上在修改一些三星的系統(tǒng)應(yīng)用時(shí)也是如此。

以三星的設(shè)備來(lái)舉例,你需要復(fù)制兩個(gè)framework文件來(lái)進(jìn)行安裝,framework-res.apk和tzframework-res.apk,一般來(lái)說(shuō),這兩個(gè)文件在手機(jī)中的位置應(yīng)該是system\framework\

使用以下代碼進(jìn)行安裝

apktool if C:\framework-res.apk

apktool if C:\tzframework-res.apk

這里假設(shè)2個(gè)文件都放在C盤根目錄

2.直接用build編譯后在dist中找到的apk文件無(wú)法使用

其實(shí)這個(gè)問(wèn)題我也不是特別理解,目前知道的就是,APK文件雖然本質(zhì)是個(gè)zip文件,但是事實(shí)上zip包中的文件是按照兩種方式壓縮的,即XML文件進(jìn)行deflate壓縮,其他文件不進(jìn)行壓縮(使用store存儲(chǔ)),而直接編譯得到的APK文件對(duì)任何的文件都進(jìn)行了deflate壓縮,因此你會(huì)發(fā)現(xiàn)編譯得到的文件比原文件小好多。

同樣的,當(dāng)你使用build文件夾中的文件替換原apk文件中的資源時(shí),請(qǐng)務(wù)必確認(rèn)是使用store存儲(chǔ)還是deflate壓縮

3.其他錯(cuò)誤

其實(shí)在編譯過(guò)程中會(huì)遇到很多其他的問(wèn)題,大多數(shù)是由于刪除、修改、添加了資源后,沒有對(duì)應(yīng)的修改res\values\public.xml文件而造成的,這里我給大家說(shuō)下修改的原則:

第一,public.xml文件中的資源不能重復(fù)定義。

第二,public.xml文件中的任意兩個(gè)資源的ID不能一樣

第三,public.xml文件中定義的資源必須能找到該文件(如果你刪除了一些文件,必須要對(duì)應(yīng)的刪除public.xml中的該行)

第四,public.xml文件中盡可能全面(如果你添加了某資源,最好確保在public.xml中也添加)

第五,public.xml文件中的資源的ID盡可能連續(xù)(當(dāng)你為添加的文件添加聲明時(shí),賦予的ID盡可能是連續(xù)的)

相關(guān)文章

最新評(píng)論