怎樣反編譯安卓app(如何反編譯apk)
本篇文章給大家談?wù)勗鯓臃淳幾g安卓app,以及如何反編譯apk對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
如何反編譯android應(yīng)用以及重編譯,簽名和對齊優(yōu)化
首先,了解一下我們?yōu)槭裁葱枰淳幾gapk
大部分情況下,是由于想本地化一款優(yōu)秀的應(yīng)用,才需要做這事兒;又或者進(jìn)行少量的smali修改以達(dá)到想要的效果(如添加歸屬地,使3G版Nexus 7支持Wi-Fi熱點(diǎn))。
下面我們先準(zhǔn)備運(yùn)行環(huán)境和工具
建立工作目錄,如.\workspace\apktoolbox (下面同樣以此路徑為例)
必不可少的JDK:Oracle Java下載,安裝完成后把jdk-inst-path\bin添加到$PATH環(huán)境變量中
反編譯和重編譯工具apktool:Google Code下載,按平臺下載(一個apktool-install-platform-ver-tar.bz2,一個apktoolver.tar.bz2,下載完成后解壓至.\workspace\apktoolbox\bin
密鑰文件,共4組。test/shared/media/platform,從android source中獲取,分別對應(yīng)不同共享用戶ID時簽名所需(查看應(yīng)用AndroidManifest.xml第二行android:sharedUserId項 ),放到.\workspace\apktoolbox\bin下
test - 無android:sharedUserId項
shared - android:sharedUserId=android.uid.shared
media - android:sharedUserId=android.uid.media
platform - android:sharedUserId=android.uid.system
簽名工具signapk.jar,放到.\workspace\apktoolbox\bin下
對齊優(yōu)化工具zipalign(從android sdk中獲取,在tools目錄下),放到.\workspace\apktoolbox\bin下
準(zhǔn)備工作完成
接下來我們就要開始工作了(以本地化工作為例)
把待反編譯的apk放到.\workspace\apktoolbox\apks下
在命令行模式下進(jìn)入.\workspace\apktoolbox\bin目錄,輸入以下命令進(jìn)行解包(反編譯)
apktool d ..\apks\apkfile.apk ..\apks\outdir
.\workspace\apktoolbox\apks\outdir\res下的values目錄(英文原版)和values-rlocale目錄(本地化)就是我們需要的對象。
本地化工作完成后,在命令行中輸入以下命令進(jìn)行重新打包(重新編譯)
apktool b ..\apks\outdir
.\workspace\apktoolbox\apks\outdir\dist目錄下會生成重新打包后的apk(未簽名,未對齊優(yōu)化)
重新打包完成后,在命令行中輸入以下命令進(jìn)行簽名(根據(jù)實(shí)際情況選用密鑰,這里以test密鑰為例)
java -jar signapk.jar testkey.x509.pem testkey.pk8 ..\apks\outdir\dist\apkfile.apk ..\apks\apkfile_signed.apk
簽名完成后,在命令行中輸入以下命令進(jìn)行對齊優(yōu)化
zipalign -f -v 4 ..\apks\apkfile_signed.apk ..\apks\apkfile_zipaligned.apk
apkfile_zipaligned.apk就是我們最終需要的apk了。
完成
部分apk需要系統(tǒng)框架資源,沒有的話在重新打包時會報錯,這種情況下我們只需要先安裝一下對應(yīng)系統(tǒng)框架即可(從你目標(biāo)ROM中把/system/framework/framework-res.apk提取出,放到.\workspace\apktoolbox\apks下)。在命令行中輸入以下命令進(jìn)行安裝
apktool if ..\apks\framework-res.apk
如何反編譯一個app
下載apktool所需文件:
a、 apktool1.5.2.tar.bz2
b、apktool-install-windows-r05-ibot.tar.bz2 (windows系統(tǒng))
解壓剛剛下載的文件,并將解壓的文件放入C:\Windows目錄下
啟動控制臺,輸入apktool,回車可查看到apktool工具常用指令
新建一個文件夾,用于存放apk及待解壓的文件,這里筆者將文件夾建在D:\apk目錄,同時放入用于測試的android app包(test.apk)
控制臺輸入:apktool d D:\apk\test.apk D:\apk\test 進(jìn)行反編譯操作
中句話中“D:\apk\test.apk”指apk存放位置,“D:\apk\test”指反編譯后文件存放的位置 反編譯成功之后,進(jìn)入D:\apk\test文件目錄可以查看到反編譯后的文件
如何反編譯android應(yīng)用并重新打包
android應(yīng)用安裝到手機(jī)的是一個apk文件。apk是可以用工具進(jìn)行反編譯并重新打包的。本文將介紹下如何用apktool對apk進(jìn)行反編譯并重新打包。工具/原料apktoolautosign方法/步驟首先我們新建一個android項目,里面只有一個MainActivity,而且主界面只會顯示一個字符串:你好。下面,我們切換到這個項目生成的apk文件所在的目錄,可以看到有一個hellodemo.apk。在命令行輸入:apktoold-rhellodemo.apk??梢钥吹皆诋?dāng)前目錄下生成了一個hellodemo文件夾。進(jìn)入到hellodemo\smali\com\example\hello,打開MainActivity.smali。找到:const-stringv1,"\u4f60\u597d",修改為:const-stringv1,"hello",然后在命令行輸入:apktoolbhellodemohellodemo1.apk。這回重新打包成hellodemo1.apk。然后給新生成的apk進(jìn)行簽名。把這個apk拷貝到autosign的目錄下面,然后切換過去,在命令行輸入:java-jarsignapk.jartestkey.x509.pemtestkey.pk8hellodemo1.apkhellodemo.apk。步驟閱讀把生成的hellodemo.apk安裝到手機(jī),可以看到主界面上已經(jīng)顯示的是hello,而不再是你好。說明反編譯重新打包成功!
怎樣反編譯安卓app的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于如何反編譯apk、怎樣反編譯安卓app的信息別忘了在本站進(jìn)行查找喔。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。