網站:https://ibotpeaches.github.io/Apktool,下載安裝好apktool。
我的安裝在 C:\Users\Administrator\Downloads\apktool反編譯工具2.2.2。apk我放在c盤根目錄,名字叫test.apk,cmd打開命令行。
運行:apktool d -f c:\test.apk
當前目前便會生成一個test的目錄,對應的包的文件目錄。
如要做啥修改,可以自行修改包的內容,有些加密了可能修改不了。改完了然后得重新編譯成apk。
運行:apktool b test
(圖示)
查看test目錄,里面多了一個dist目錄,目錄里面有個test.apk
也可以運行:java -jar apktool.jar b -f test
網上看有人會報錯:
F:\apktool>apktool b Hello Hello.apk
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN
otExist: apktool.yml
解決方法:進行反匯編時,改用命令apktool d -r xx.apk xx便可以解決(加上了-r選項)。
但這種包並不能安裝,需要簽名才能安裝。
此處需要安裝java環境,如未安裝,請自行安裝。我的安裝在:G:\Program Files (x86)\Java
依然cmd,g:,cd G:\Program Files (x86)\Java\jdk1.7.0\bin
之后輸入命令:keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore
您的名字與姓氏是什么?
[Unknown]: webyang
您的組織單位名稱是什么?
[Unknown]: webyang
您的組織名稱是什么?
[Unknown]: webyang
您所在的城市或區域名稱是什么?
[Unknown]: new york
您所在的省/市/自治區名稱是什么?
[Unknown]: new york
該單位的雙字母國家/地區代碼是什么?
[Unknown]: cn
CN=webyang, OU=webyang, O=webyang, L=new york, ST=new york, C=cn是否正確?
[否]: Y
查看當前bin目錄,生成了新文件:abc.keystore,把上面的test.apk放到這個bin目錄,再次運行:
jarsigner -verbose -keystore abc.keystore -signedjar testx.apk test.apk abc.keystore
發現生成了testx.apk,此apk為最終安裝版本。
后來我安裝出現了以下錯誤。
INSTALL_FAILED_UPDATE_INCOMPATIBLE
原因:就是你的安裝包與之前設備上的安裝包簽名不一致。百度的時候,有的人說:運行太多次也會出現上述的問題,我就這樣
手機是安卓9的華為mate10.
下面是原文,最好在測試機上進行,直接root就行。