【轉】利用apktool反編譯apk,並且重新簽名打包


網站: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就行。

https://blog.csdn.net/u012150360/article/details/55223619


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM