android反编译及再次打包
来源:互联网 发布:unity3d游戏开发基础 编辑:程序博客网 时间:2024/05/20 03:04
一)、环境配置及命令熟悉。
1:安装J AVA并设置环境变量
Java jdk下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java环境参考地址http://jingyan.baidu.com/article/e75aca85508d15142edac6b8.html
2:下载apktool 工具
Apktool下载地址 :https://ibotpeaches.github.io/Apktool/
3:对apk进行反编译
该命令用于进行反编译apk文件,一般用法为
apktool d <file.apk> <dir>
<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
<dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer,也可以不写,默认存在apktool工具所在目录下。
如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令
apktool d –f <file.apk> <dir>
这样就会强行覆盖已经存在的文件
如:Cmd 中切换apktool 工具所在的目录中,apktool d hello.apk(此处换成你apk 的绝对路径)
4:对反编译的apk文件进行再次打包
apktool b<dir>
这里的<dir>就是刚才你反编译时输入的<dir>(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。
如:Cmd 中切换apktool 工具所在的目录中, apktool b F:\android_package\hello\dist\ hello.apk(此处放反编译的apk文件)进行打包生成apk.(此时的apk没有签名不可以安装需要再次签名)
5:对再次打包的生成的APK进行签名
Apksigner签名工具下载地址:http://apk.aq.163.com/apkpack.do#download
java -jar ApkSigner.jar [-appname test] -keystorekeystorePath -alias alias [-pswd password] [-aliaspswd aliasPassword]apkPath(or directory)
-appname
待签名的应用程序名,可选,但建议不同的APP填上对应的app名(可以为中文),有助于【加速】
-keystore
后跟.keystore签名文件
-alias
后跟签名别名
-pswd
后跟对应签名的密码,例如这里是:android可选,如果不填,则签名的时候需要手动输入
-aliaspswd
对应别名 alias的密码,如果没有则默认使用 keystorePassword
最后跟待签名的apk路径或者目录路径,如果跟的是目录则是批量签名
如:对上一步打包好的apk进行签名:
java -jar apksigner.jar -appname hello -keystore F:\android_package\android-keystore -alias hello_alias -pswd hello –aliaspswd hello F:\android_package\hello \dist\hello .apk
对F:\android_package\hello\dist\hello.apk进行签名,签名后既可以在手机上安装
6:对签名后的apk进行优化(此步骤需要配置android JDK环境)
签名之后,如果需要进行对齐操作,请调用命令: zipalign -f 4 in.apk out.apk, zipalign 这个程序在 android sdk 有提供。
如:zipalign -v 4 F:\android_package\hello\dist\hello.apk hello_align.apk
二)、实战编译反编译签名过程
1):对F:\android_package目录下的hello.apk进行反编译:
进入cmd中切换目录到F:\android_package中执行
Apktool d F:\android_package\hello.apk;
在F:\android_package目录中生成对应的hello文件,
我们可以修改hello文件的资源文件及替换图片,修改渠道等操作。
此操作我们可以通过运行:F:\android_package目录下的apktool_d.bat完成。
(注意:有时可能会因为我们修改了文件后会生成对应修改文件的bak文件导致再次打包时报错,我们删除该文件就ok了)
2):对反编译后修改的hello文件进行打包
进入cmd中切换目录到F:\android_package中执行
Apktool b F:\android_package\hello
在F:\android_package\hello \dist文件中会生成一个对应的hello.apk 。此时的apk没有进行签名是无法安装到手机上,需要再次签名才可以安转。
此操作我们可以通过运行:F:\android_package目录下的apktool_b.bat完成。
3):对再次打包后生成的apk进行签名:
进入cmd中切换目录到F:\android_package中执行
java -jar apksigner.jar -appname hello -keystore F:\android_package\android-keystore -alias hello_alias -pswd hello –aliaspswd hello F:\android_package\hello \dist\hello .apk
对apk进行签名;之后会在F:\android_package\hello\dist\生成签名后的apk覆盖之前未签名的apk,此时的apk已经可以安装到手机中了。
此操作我们可以通过运行:F:\android_package\apksigner目录下的apksigner.bat完成。
4):用zipalign 对apk进行对齐优化操作:
进入cmd中切换目录到F:\android_package中执行
zipalign -v 4 F:\android_package\hello\dist\hello.apk hello_align.apk
后会在F:\android_package中生成一个hello_align.apk 的apk
到此二次打包完成。
- android反编译及再次打包
- Android apk打包及反编译
- Android反编译及重新打包
- Android反编译改变一些东西之后再次打包
- 对反编译的Android apk 并再次打包
- Android apk反编译及重新打包流程
- Android 打包与反编译
- ANDROID 反编译打包签名
- android 反编译+二次打包
- Android 打包 与 反编译
- Android项目打包apk及apk的反编译,xml的反编译
- android 反编译及防止反编译
- android apk反编译打包签名
- android apk反编译打包签名
- Android反编译和打包签名
- android apk反编译打包签名
- Android 混淆打包与反编译
- Android 反编译、重新打包发布
- android中Adapter适配器说明
- 【JavaScript】BootStrip DatetimePicker 错误Error this.defaultTimeZone=(newDate()).toString().split("(")[
- 大数据系列修炼-Scala课程63
- 取文本文件第二列数的C程序
- 安卓自定义控件之item高度不同的viewpager
- android反编译及再次打包
- C语言--职工信息管理系统(含论文)
- 常见三维重建算法及其实现(含源码下载链接)
- 前端优化-渐进式图片的制作
- 欢迎使用CSDN-markdown编辑器
- Fragment一些方法介绍
- 在Visual C++ 中使用内联汇编
- 为什么需要锁(并发控制)?
- UVA101