Android反编译、添加新的jar包、重新打包
来源:互联网 发布:3b线切割编程小狗图案 编辑:程序博客网 时间:2024/06/06 01:53
0. 所需工具打包下载
打包下载地址
1. 反编译
所需工具
apktool
方法
在apktool目录下按住Shift键点击鼠标右键, 点击 在此处打开命令窗口,输入如下命令:
apktool d [apkFile] -f -o [outputDir]
d —— 代表当前操作是反编译解包
[apkFile] —— 需要解包的apk路径, 例如C:\1.apk
-f —— 强制覆盖,若outputDir路径已经存在,会清空outputDir指向的文件夹内的所有内容
-o —— 指定输出目录为紧跟在-o后的路径, 即[outputDir]
[outputDir] —— 输出的路径,例如C:\output
2. 添加新的jar包
所需工具
- dex2jar
- baksmali
方法
使用dex2jar工具内的d2j-jar2dex.bat,将jar包转换成dex文件
直接拖动jar文件到d2j-jar2dex.bat的图标上即可
使用baksmali.jar工具将刚才得到的dex文件转化成smali文件
首先得安装jdk并将jdk/bin目录添加到系统环境变量Path中, 然后打开cmd输入如下命令:
java -jar baksmali.jar [dexFile]
[dexFile] 即刚刚得到的dex文件的路径
将生成的存放.smali文件的文件夹(默认是baksmali.jar同一路径下的out文件夹)内的所有内容拷贝到反编译步骤生成的目录中的smali文件夹中
重复上述步骤,直到你所需要添加的jar包均添加完毕为止。
3. 重新打包
工具
apktool
方法
在apktool目录下按住Shift键点击鼠标右键, 点击 在此处打开命令窗口,输入如下命令:
apktool b [projectDir]
b —— 代表当前操作是build
[projectDir] —— 需要打包的项目根目录, 即指向第一步反编译中生成的文件夹(如果你没复制到别的地方去的话)
然后就可以看到在项目根目录下多了一个dist文件夹(其实还多了个build文件夹, 不过与我们这边讨论的东西关系不大), dist文件夹中有本次打包生成的apk文件
4. 签名
工具(以下两个工具均在jdk/bin目录下)
- keytool
- jarsigner
方法
- 生成keystore(已经有的跳过该步骤)
打开cmd命令窗口, 输入以下命令:
keytool -genkeypair -alias [keystoreName.keystore] -keyalg RSA -validity 100
-keystore [keystoreName.keystore][keystoreName.keystore] —— 生成的keystore的别名 例如sh.keystore
- 使用生成的keystore对apk进行签名
打开cmd命令窗口, 输入以下命令:
jarsigner -verbose -keystore [keystoreName.keystore] -signedjar [signedApkFile] [unsignedApkFile] [keystoreName.keystore]
[keystoreName.keystore] —— 生成的keystore的别名 例如sh.keystore
[signedApkFile] —— 签名后输出的apk路径
[unsignedApkFile] —— 上一步重新打包步骤生成的apk路径
然后就能在指定的[signedApkFile]处看到签名好的apk了。
5. 用处
说了这么多,Android反编译、添加新的jar包、重新打包能用来干什么呢,这里,我们只讲其中一个用处,SDK打包工具的实现。
请耐心等待下一篇文章《SDK打包工具的实现——参考U8SDK》
- Android反编译、添加新的jar包、重新打包
- Android-jar包的重新打包
- 将JAR包反编译,修改后重新打包(转)
- 将JAR包反编译,修改后重新打包
- 将JAR包反编译,修改后重新打包
- Android打包系列 JAR反编译修改后重新打包
- 反编译apk加入jar包在重新打包签名的方法
- Android APK的反编译和重新打包
- Java-----jar反编译修改重新打包
- Java-----jar反编译修改重新打包
- Java-----jar反编译修改重新打包
- jar反编译再重新打包方法
- Android 反编译、重新打包发布
- Android反编译后重新打包
- Android反编译及重新打包
- android混淆打包、反编译、重新打包签名
- Android反编译解包、重新打包、重新签名基础步骤自理文档
- 如何添加新的jar包
- leetcode-63 Unique Paths II
- fragment中onActivityForResult得到返回值
- spring batch(一):基础部分
- Android 4.4以上 根据uri获取路径的方法
- C++混编OC 交互编译
- Android反编译、添加新的jar包、重新打包
- 机器学习的几种主要学习方法
- 深度学习八大开源框架
- Android Studio-Create New Virture Divice-System Image
- java 随机生成名字
- linux虚拟机联网设置
- 浅谈分布式事务
- BASE理论
- selenium (3.0.1)+ Firefox (49.0.2)环境搭建