apktool的使用简述

本文介绍了如何使用apktool工具对Android APK文件进行反编译,详细阐述了反编译命令及其注意事项,并讲解了如何重新打包及签名的过程,包括使用keytool生成keystore文件和签名APK的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android apktool是一个用来处理APK文件的工具,可以对APK进行反编译生成程序的源代码和图片、XML配置、语言资源等文件,也可以添加新的功能到APK文件中。常常利用该工具来汉化Android软件然后重新打包发布。

一、反编译apk文件

命令:apktool d <file.apk> <dir>

其中:file.apk是待反编译文件的路径,dir是反编译后的文件的存储位置。

注意:如果dir已经存在,会提示报错,此时加上参数-f会强行覆盖dir。

举例:apktool d renrenmini.apk renrenmini


二、重新打包

命令:apktool b <dir>

<dir>就是反编译时输入的<dir>,如果一切正常,命令执行完成后dir内多了2个文件夹build和dist,其中分别存储编译过程中逐个编译的文件以及最终打包的apk文件。

举例:apktool b renrenmini。


三、创建keystore

keytool -genkey -keystore my_keystore -keyalg RSA -validity 10000 -alias zr

-genkey    产生证书文件 

-keystore  指定密钥库的名称

-keyalg     指定密钥的算法

-validity    为证书有效天数,这里我们写的是10000天。 
-alias       产生别名

之后会提醒输入密码,一定要记住这个密码。


四、签名。

命令:jarsigner -verbose -keystore keystore_name -signedjar new.apk original.apk keystore_alias

解释:将keystore文件复制到需要签名的apk的同一路径下。其中keystore_name是keystore文件名,new.apk是签名后新生成apk的名称。original.apk是待签名apk名称。

keystore_alias是keystore的别名。运行命令,系统会要求输入密钥(建立keystore时设置的密钥,一定要记住)。输入密钥成功后便会执行签名操作。

举例:jarsigner -verbose -keystore my_keystore -signedjar signed_renren.apk nosig_renren.apk zr 其中my_keytore为文件名,zr为别名。

注意:如果忘记keystore的别名,可以通过命令:

keytool -list -v -keystore [enter keystore name] -storepass [enter keystore password] 获得别名。

如下:zr@zr-PC:~/workspace$ keytool -list -v -keystore my_keystore -storepass 123456

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: zr
创建日期: 2014-10-14
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=zeng run, L=Beijing
发布者: CN=zeng run, L=Beijing
序列号: 58ec916d
有效期开始日期: Tue Oct 14 16:19:26 CST 2014, 截止日期: Sat Oct 08 16:19:26 CST 2039
证书指纹:
     MD5: C4:73:2F:59:F5:CA:76:C1:10:59:98:E8:F9:23:9E:9E
     SHA1: 16:90:E7:D3:E8:ED:9D:E0:5E:47:9A:3B:D4:D4:8E:D0:40:AF:BD:23
     SHA256: FF:0F:AF:A5:FA:8F:A8:25:8D:8D:E7:17:08:71:46:CD:60:F1:44:F0:88:81:6F:3E:7B:61:AC:8F:B0:7D:17:CC
     签名算法名称: SHA256withRSA
     版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: E6 61 76 EB C6 99 7D 4B   F6 B5 75 AD E1 FA 63 E5  .av....K..u...c.
0010: 3C D4 BC 5F                                        <.._
]
]
*******************************************
*******************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值