Mac 反编译apk 修改资源图片、重新打包、签名

首先配置JDK,进入官网下载安装Java JDK

下载安装apktool, 官网详细步骤Apktool

注意:保存的apktool为apktool.sh文件

安装成功后,执行以下命令:

cd /usr/local/bin 

在bin文件下执行:  (/Users/avia/Desktop/test/test.apk  为apk文件的绝对路径)

  java -jar apktool.jar d /Users/avia/Desktop/test/test.apk

输出结果: 

I: Using Apktool 2.3.4 on test.apk

I: Loading resource table...

I: Decoding AndroidManifest.xml with resources...

...........

解压出来的test文件就是反编译后的文件。

可以再res文件里修改图片。

 

重新打包apk

 bin文件下执行命令:(test 即为反编译出来的文件)

java -jar apktool.jar b test 

成功后,会在test文件下生成如上图的dist文件,里面的test.apk即为新打包的apk

 

签名

生成签名

如果没有或需要重新生成签名,使用JDK自带的keytool工具来完生成keystore。

执行命令:

keytool -genkey -v -alias android -keyalg RSA -validity 20000 -keystore ~/Desktop/test/android.keystore

参数解释如下:

-genkey 产生证书文件 
-alias 产生别名 
-keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法) 
-validity 为证书有效天数,这里写的是20000天

-keystore 指定密钥库的android.keystore文件,可在文件名前面添加路径

输出:

输入密钥库口令:  

再次输入新口令: 

您的名字与姓氏是什么?

  [Unknown]:  test

您的组织单位名称是什么?

  [Unknown]:  test

您的组织名称是什么?

  [Unknown]:  test

您所在的城市或区域名称是什么?

  [Unknown]:  test

您所在的省/市/自治区名称是什么?

  [Unknown]:  test

该单位的双字母国家/地区代码是什么?

  [Unknown]:  test

CN=test, OU=test, O=test, L=test, ST=test, C=test是否正确?

  [否]:  

您的名字与姓氏是什么?

  [test]:  test

您的组织单位名称是什么?

  [test]:  test

您的组织名称是什么?

  [test]:  test

您所在的城市或区域名称是什么?

  [test]:  test

您所在的省/市/自治区名称是什么?

  [test]:  test

该单位的双字母国家/地区代码是什么?

  [test]:  test

CN=test, OU=test, O=test, L=test, ST=test, C=test是否正确?

  [否]:  Y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 20,000 天):

CN=test, OU=test, O=test, L=test, ST=test, C=test

输入 <android> 的密钥口令

(如果和密钥库口令相同, 按回车):  

再次输入新口令: 

[正在存储~/Desktop/test/android.keystore]

即可在~/Desktop/test/ 中找到android.keystore文件

设置签名

使用JDK自带的jarsigner工具来完成签名。

jarsigner的命令格式
jarsigner -verbose -keystore [签名文件存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [签名的别名]

如:

jarsigner -verbose -keystore ~/Desktop/result/android.keystore -signedjar ~/Desktop/result/result.apk ~/Desktop/result/test.apk android

jarsigner的参数说明
签名文件存放路径:
签名文件的绝对路径,例如:~\android.keystore

签名后文件存放路径:
指定要签名apk文件的绝对路径例如 c:\result.apk

未签名的文件路径 :
指定要签名apk文件的绝对路径,一般是应用市场会给你一个为签名的的包,就是那个,例如 c:\test.apk

签名的别名:
是指您创建签名文件的时候,你设置的别名 (android)

 

操作步骤
1.进入命令窗口 ,输入上述命令, enter 键继续
2.提示输入签名密码,输入,enter 键继续
3.打包成功,去指定的路径查看签名后的 apk 文件

 

大功告成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值