如何應(yīng)用安卓APK文件進(jìn)行解包打包和修改
如何應(yīng)用安卓APK文件進(jìn)行解包打包和修改
不需要解包跟打包,直接修改就可以,修改的的方法。
如下參考:
1.將需要修改的apk包**到100apktool的路徑中。
注意:您需要將文件名更改為123apk,如下圖。
2.打開程序apktool。cmd,如下圖。
3.顯示主界面有詳細(xì)說明。我們只需要解壓和壓縮,如下圖。
4.輸入1并按回車,首先解壓縮,然后在當(dāng)前路徑下生成APK文件跟蹤文件夾,如下圖所示。
5.在APK文件夾中輸入specialzhidao,修改內(nèi)容。添加資源文件(圖像),如下圖。
6.輸入3并按回車進(jìn)行封裝和數(shù)字簽名,如下圖。
7.如果返回到Apktools/Apk/build路徑,您將看到簽名的通用Apk包,如下圖。
[轉(zhuǎn)載]新手必學(xué):如何解包apk得到里面的源代碼!
準(zhǔn)備的工具除了jdk還有以下內(nèi)容(在Google官網(wǎng)都有):把a(bǔ)pktool-install-windows-2.1_r01-1.zip,dex2jar-0.0.7-SNAPSHOT.zip解壓到一個(gè)盤的根目錄下(這里我選擇H盤),同時(shí)把AXMLPrinter2.jar,apktool.jar和你想解包的apk軟件也放在同一個(gè)目錄下,然后“運(yùn)行–cmd”打開控制臺(tái),輸入cd /d h : /進(jìn)入H盤的根目錄然后輸入以下內(nèi)容(控制臺(tái)不要關(guān),為了后面方便):其中apktool.jar是解包工具,d表示解包,memo.apk是我要解包的軟件,memo表示解包后輸出到這個(gè)文件夾,等待片刻,就會(huì)生成memo文件夾,打開里面會(huì)有res文件夾下的所有文件和AndroidManifest.xml,用記事本就可以查看了。
如何修改apk文件?
如何修改apk文件[apk文件修改、圖標(biāo)、美化、去廣告]完全教程一、首先搭建jdk環(huán)境。下載完后,點(diǎn)擊安裝。
然后設(shè)置運(yùn)行環(huán)境參數(shù):用鼠標(biāo)右擊“我的電腦”->屬性->高級->環(huán)境變量系統(tǒng)變量->新建->變量名:JAVA_HOME 變量值:D:\\Program Files\\Java\\jdk1.7.0(這是我的安裝路徑這個(gè)不是固定的,比如你安裝到C:\\Program Files,就填C:\\Program Files\\Java\\jdk1.7.0)系統(tǒng)變量->編輯->變量名:Path 在變量值的最前面加上:%JAVA_HOME%\\bin;(若已經(jīng)有Path項(xiàng),無須另外新建,直接在后面加,但需用;與前面已有的項(xiàng)分隔開)系統(tǒng)變量->新建->變量名:CLASSPATH 變量值:.;%JAVA_HOME%\\lib;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;**測試下環(huán)境變量是否設(shè)置成功點(diǎn)開始菜單-運(yùn)行-在這里輸入cmd-回車-輸入javac1.如果出現(xiàn)如下信息:用法:javac 其中,可能的選項(xiàng)包括:-g 生成所有調(diào)試信息-g百科:none 不生成任何調(diào)試信息-g:{lines,vars,source} 只生成某些調(diào)試信息-nowarn 不生成任何警告-verbose 輸出有關(guān)編譯器正在執(zhí)行的操作的消息-deprecation 輸出使用已過時(shí)的 API 的源位置-classpath 指定查找用戶類文件的位置-cp 指定查找用戶類文件的位置-sourcepath 指定查找輸入源文件的位置-bootclasspath 覆蓋引導(dǎo)類文件的位置-extdirs 覆蓋安裝的擴(kuò)展目錄的位置-endorseddirs 覆蓋簽名的標(biāo)準(zhǔn)路徑的位置-d 指定存放生成的類文件的位置-encoding 指定源文件使用的字符編碼-source 提供與指定版本的源兼容性-target 生成特定 VM 版本的類文件-version 版本信息-help 輸出標(biāo)準(zhǔn)選項(xiàng)的提要-X 輸出非標(biāo)準(zhǔn)選項(xiàng)的提要-J 直接將 傳遞給運(yùn)行時(shí)系統(tǒng)恭喜,你的Java環(huán)境變量配置成功了!2.如果出現(xiàn):\’javac\’ 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件。
說明這Java環(huán)境變量配置出錯(cuò)了,仔細(xì)檢查下吧!二、下載APKTools工具包(里面包含:APKTools反編譯工具、APKSign簽名工具)。下載Notepad代碼編輯器(可以修改**ali和xml文件)。在修改之前首先對APK文件內(nèi)部結(jié)構(gòu)有個(gè)了解:AndroidManifest.xml 程序全局配置文件classes.dex 這是Dalvik字節(jié)碼resources.arsc 編譯后的二進(jìn)制資源文件META-INF\\ 該目錄下存放的是簽名信息res\\ 該目錄存放資源文件assets\\ 該目錄可以存放一些配置文件對應(yīng)這些文件和目錄做些基本的注釋和介紹:AndroidManifest.xml該文件是每個(gè)應(yīng)用程序都必須定義和包含的文件,它描述了應(yīng)用程序的名字、版本、權(quán)限、引用的庫文件等等信息。需要解包后才能加以閱讀。
classes.dex文件 classes.dex是java源碼編譯后生成的java字節(jié)碼文件。dex是Dalvik VM executes的全稱,即Android Dalvik執(zhí)行程序,并非Java ME的字節(jié)碼而是Dalvik字節(jié)碼。resources.arsc 編譯后的二進(jìn)制資源文件。
META-INF目錄 META-INF目錄下存放的是簽名信息,用來保證apk包的完整性和系統(tǒng)的安全。在eclipse編譯生成一個(gè)apk包時(shí),會(huì)對所有要打包的文件做一個(gè)校驗(yàn)計(jì)算,并把計(jì)算結(jié)果放在META-INF目錄下。這就保證了apk包里的文件不能被隨意替換。
比如拿到一個(gè)apk包后,如果想要替換里面的一幅圖片,一段代碼, 或一段版權(quán)信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來就給**感染和惡意修改增加了難度,有助于保護(hù)系統(tǒng)的安全。res目錄 res目錄存放資源文件。
包括圖片,字符串等等。解包后,幾乎所有可能的修改和編輯工作基本都在這里。assets目錄assets目錄可以存放一些配置文件,這些文件的內(nèi)容在程序運(yùn)行過程中可以通過相關(guān)的API獲得。APK文件修改,首先要對APK文件解包(也就是反編譯),打開apktool.exe,如圖:左邊APK反編譯區(qū),選擇APK文件,選擇文件保存目錄,點(diǎn)反編譯APK按鈕,得到解包文件。
三、開始修改1. 如果只是對圖像進(jìn)行替換,沒有必要進(jìn)行解包和打包。用WinRAR打開APK文件,直接做替換就可以了。但是,如果要對文字和其它非圖像類內(nèi)容進(jìn)行修改,那只能通過解包了,改好后,再編譯回來,**簽名才能放進(jìn)手機(jī)安裝。下面介紹幾個(gè)對APK進(jìn)行解包和打包的案例。
2. **APK軟件在res文件夾中,我們可以看到有很多values-***的文件夾,這就是語言包。values是英文語言包,values-zh是**地區(qū)語言包(包含港澳臺(tái)及內(nèi)地),values-zh-rCN是中文簡體語言包(只包含內(nèi)地),values-zh-rTW是中文繁體語言包(港澳臺(tái))。除此以外,其它地區(qū)的語言包都是精簡的對象,可以不過多了解。在values文件夾里,通常有arrays.xml、strings.xml等語言文件,要作**就要對這些文件進(jìn)行修改。
有時(shí)也需要修改其它xml文件,一個(gè)一個(gè)地認(rèn)真查看。改好后,打包,簽名,OK。3. 修改桌面圖標(biāo)名稱(標(biāo)簽)每一個(gè)APK文件都有一個(gè)“圖標(biāo)標(biāo)簽”。
將APK程序安裝進(jìn)手機(jī)后,在圖標(biāo)下面顯示圖標(biāo)標(biāo)簽文字。這個(gè)圖標(biāo)標(biāo)簽的內(nèi)容是可以修改的。在\\res\\values下找到strings.xml,修改其中的一行:圖標(biāo)標(biāo)簽例如:靜音啟動(dòng)同理,如果是窗口小插件,要修改widget_name。
注意:system/app下的apk不宜修改,因?yàn)橐瑫r(shí)修改對應(yīng)的odex文件。改好后,打包,簽名,OK。4. 去掉APK中的廣告有很多APK應(yīng)用都帶有廣告。為了去掉程序中的廣告,要修改main.xml文件與廣告有關(guān)的內(nèi)容。
在\\res目錄下找到文件main.xml。通常在\\layout目錄下,有時(shí)也被放在其它目錄下。甚至,有時(shí)不存在main.xml文件,廣告行被放在其它xml文件內(nèi)。
只能細(xì)心逐個(gè)文件進(jìn)行查找。無論哪一種情況,查看其內(nèi)容,你會(huì)看到有一項(xiàng)類似的命令如下。這就是廣告顯示。 將其改為: 可以看到,關(guān)鍵是要把fill_parent改為0.0dip,把wrap_content改為0.0dip,其它保持不變即可。
這種改法就是不給廣告顯示空間,當(dāng)然你就看不到廣告了。改好后,打包,簽名,OK。5. 修改顯示電池為1%精度舉個(gè)例子比如在摩托羅拉XT502上,默認(rèn)顯示只有7檔: 0%,10%,20%,40%,60%,80% 和****。
通過修改framework-res.apk,可以改變顯示精度。但是在一些手機(jī)上,實(shí)踐證明**可能達(dá)?。
apktool 反編譯apk后怎么使用
1.下載反編譯工具 需要下載四個(gè)工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot dex2jar:將apk中的classes.dex轉(zhuǎn)化成Jar文件。 JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。2.解壓縮APK包 apk文件也是一種常見的zip,常用的壓縮軟件就可輕松地解壓apk文件。用壓縮軟件將apk文件中的文件解壓到一個(gè)文件夾中,得到APK中的資源包括XML文件和classes.dex文件,classes.dex就是java文件編譯再通過dx工具打包而成的。3.反編譯dex文件 解壓apk文件后,你會(huì)發(fā)現(xiàn)res目錄的圖片沒有加密,但java源碼編譯成了一個(gè)classes.dex文件,無法用普通的反編譯class文件的方法來處理,dex2jar可以將dex文件轉(zhuǎn)換成普通的jar包。
解壓下載的dex2jar,把解壓后的文件夾放到系統(tǒng)盤跟目錄中并把這個(gè)目錄加到系統(tǒng)path變量中,就可以直接用:dex2jar.bat或dex2jar.sh轉(zhuǎn)換dex文件了。 DOS行命令如下:dex2jar.bat xx\\classes.dex(xx是classes.dex文件所在的路徑)。 將在同目錄得到普通jar包:classes_dex2jar.jar,就可以用處理普通jar包的方法來反編譯這個(gè)jar包得到原文件。
4.反編譯jar包 得到j(luò)ar包后,下載自已喜歡的反編譯工具,推薦使用JD-GUI,有比較簡單的圖形界面,可以反編譯單個(gè)class文件,也可以反編譯jar包,比較方便。 打開壓縮文件JD-GUI,運(yùn)行jd-gui.exe,打開上面生成的jar包,即可看到源代碼了。5.反編譯xml文件 打開解壓的res\\layout目錄,有很多xml文件,如果你想看下作者是如何設(shè)計(jì)界面的,你會(huì)很失望,因?yàn)槟憧吹降氖且淮蠖褋y碼!這個(gè)時(shí)候我們需要用到的是apktool。
具體操作方法:將下載的apktool和apktool-install-windows-r05-ibot兩個(gè)包解壓到同一個(gè)文件夾下,這個(gè)文件夾有三個(gè)文件:aapt.exe,apktool.bat,apktool.jar。把這個(gè)文件夾也放到系統(tǒng)盤的根目錄中并把這個(gè)目錄加到path變量中。以HelloWord.apk為例: 在DOS命令行中輸入:apktool d xx\\HelloWord.apk HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
這樣就得到了可以得到編譯的源碼和XML資源。