1. 程式人生 > >Android簡單的反編譯Apk並重新打包,簽名釋出

Android簡單的反編譯Apk並重新打包,簽名釋出

本文簡單介紹apk是如何修改logo(ic_launcher),類似的資原始檔修改也可以通過此方式。不過要修改class的話就要涉及到smali的學習了,這裡就暫且不談,後續有需要再做更新。

一、工具介紹:

在這裡插入圖片描述

  • apktool:用來反編譯apk,apk重新打包
  • autosign:自動簽名工具,將重新打包的apk進行簽名,如果不簽名,無法安裝使用
  • jadx-0.6.1-dev-build226:檢視原始碼及目錄結構,相當於dex2jar + jd-gui

二、工具使用

  1. jadx-0.6.1-dev-build226

雙擊jadx-0.6.1-dev-build226\bin目錄下jadx-gui.bat,選擇test.apk即可看到原始碼及目錄結構,如下在這裡插入圖片描述

這只是用於檢視原始碼,並起不到修改作用,不過可以檢視要修改的東西在哪個位置,真正修改要通過apktool反編譯apk的原始碼才可以修改。

  1. apktool

該目錄下有三個檔案:aapt.exe,apktool.bat,apktool.jar ,將需要反編譯的APK檔案放到該目錄下,如圖: 在這裡插入圖片描述 在該目錄下,按住Shift,然後右鍵選擇“在此處開啟命令視窗”,輸入一下命令:

apktool.bat d -f test.apk -o test

apktool -f [待反編譯的apk] -o [反編譯之後存放資料夾] 在這裡插入圖片描述 如果反編譯過程中遇到Exception in thread “main” 錯誤,可能是apktool.jar的版本太低,使用高版本不會出現異常。

請往https://ibotpeaches.github.io/Apktool/重新下載,下載到的apktool_xxx.jar檔案改名為apktool.jar,然後替換掉老版本的apktool.jar,重新執行命令應該就正常了。

反編譯之後會得到test 資料夾,開啟test資料夾,裡邊就是反編譯出來的各種資原始檔 在這裡插入圖片描述 然後進行test\res目錄去修改ic_launcher,這裡所有的ic_launcher都要做替換。

修改成功,儲存,重新打包,執行打包命令

apktool.bat b test

在test檔案內會多出兩個檔案如下圖所示: 在這裡插入圖片描述 dist檔案內就是我們需要的apk。

  1. autosign

簽名apk,重新發布

接下來就要用到簽名工具了,如果不經過簽名是不能正確執行的。工具: auto-sign.zip

將打包好的test.apk 拷貝到解壓好的auto-sign資料夾下,執行命令:

java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test_signed.apk

test_signed.apk就是簽名後的apk

到此修改資原始檔就大功告成了,也是很簡單的