Blog Details

修改成品apk并打包

修改成品apk并打包

以下内容仅方便开发调试用,无其他用途。引用来自https://tw511.com/a/01/15111.html 和 https://medium.com/@sandeepcirusanagunla/decompile-and-recompile-an-android-apk-using-apktool-3d84c2055a82

一、准备工具¶

apktool - 用于逆向android apk的工具,方便反编译和打包

keytool - 创建密钥和证书的java工具,可以在jdk中找到

jarsigner - 对JAR/APK文件签名的工具,可以在jdk中找到

apksigner - 对apk文件签名的工具,可以在android sdk中找到

zipalign - 压缩对齐工具,可以在android sdk中找到

dex2jar - 将android dex文件转换为jar文件的工具

jadx - 查看jar包中java源码的工具

二、操作步骤¶

# apktool查看具体用法

# java -jar E:\tools\android\apktool\apktool_2.7.0.jar

# 反编译生成jar包

# E:\tools\android\dex-tools-2.2-SNAPSHOT\d2j-dex2jar.bat yourapk.apk

# 将jar包丢到jadx中即可查看

########################

# 反编译apk

java -jar E:\tools\android\apktool\apktool_2.7.0.jar d yourapk.apk

########################

# 修改内容

# 可以替换lib下的so

# 可以修改smali中的内容,前提是需要了解smali的语法

# 可以修改res中的资源文件

# 可以修改apktool.yml中的版本号

########################

# 打包apk

java -jar E:\tools\android\apktool\apktool_2.7.0.jar b -f -d yourapk

# 打包后,apk会输出在yourapk/dist目录

# 压缩对齐

E:\tools\android\SDK\build-tools\sdk版本\zipalign.exe -v 4 yourapk/dist/yourapk.apk newname.apk

# apk签名, jarsigner是v1签名,apksigner是v2签名

# 没有keystore需要生成一个

# keytool -genkey -v -keystore my-release-key.keystore -alias my-release-key -keyalg RSA -keysize 2048 -validity 10000

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore newname.apk my-release-key

# v2签名

# 没有jks需要生成一个

# keytool -genkeypair -v -keystore my_key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my_key

C:\Users\Admin\AppData\Local\Android\Sdk\build-tools\29.0.2\apksigner.bat sign --ks D:\tools\Android\my_key.jks yourapk.apk

本文总阅读量