APK反编译、修改、重打包、签名

1、反编译:

java -jar apktool_2.0.0.jar d TestSMSDemo.apk

默认反编译到TestSMSDemo文件夹下,apktool下载请点击这里

2、修改AndroidManifest.xml

<application android:icon="@drawable/icon"
    android:label="@string/app_name" 
    android:name=".VideoApplication" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:uiOptions="splitActionBarWhenNarrow" 
    android:debuggable="true">
    <!-- 主要添加debuggable,为以后调试apk做准备-->

3、重新打包:

java -jar apktool_2.0.0.jar b TestSMSDemo(之前反编译生成的文件夹名,如果是out请写out)

默认会将文件重新打包到TestSMSDemo/dist目录下

4、签名:

1)生成keystore。可以使用命令行生成keystore,也可以使用Eclipse签名一个demo生成keystore,记住保存位置就好了。

  • 使用命令行生成:

keytool -genkey -v -keystore mykeystore(可以任意名字) -alias linlin(别名,可以任意,但是在后面会用到这个别名,所以要记清楚) -keyalg RSA -validity 20000

然后根据提示输入需要的内容。

  • 使用Eclipse生成就不用说了,签名apk的时候都用到,记住生成keystore保存位置。简单易行。

2)签名apk

jarsigner -verbose -keystore mykeystore -signedjar android_signed.apk(目标名字) TestSMSDemo.apk(要签名的apk) linlin(这个地方就是上面说要记住的别名 -alias,看有些例子上面这个地方字符串用‘ ’号引起来是错误的,直接写字符串就好了)

附:

()     里面是说明文字,在使用命令时请忽视

为了方便记忆可以将-alias和keystore的名字一致。如果-alias跟keystore名字不一致,又忘记了写的什么,可以使用Eclipse查看。具体方法就是打包程序,然后选择该keystore,输入密码后会自动显示alias的名字。如下图所示:

usage:apktool 
-advance,--advanced prints advance information. 
-version,--version prints the version then exits 
usage: apktool if|install-framework [options] <framework.apk> 
-p,--frame-path <dir> Stores framework files into <dir>. 
-t,--tag <tag> Tag frameworks using <tag>. 
usage: apktool d[ecode] [options] <file_apk> 
-f,--force Force delete destination directory. 
-o,--output <dir> The name of folder that gets written. Default is apk.out 
-p,--frame-path <dir> Uses framework files located in <dir>. 
-r,--no-res Do not decode resources. 
-s,--no-src Do not decode sources. 
-t,--frame-tag <tag> Uses framework files tagged by <tag>. 
usage: apktool b[uild] [options] <app_path> 
-f,--force-all Skip changes detection and build all files. 
-o,--output <dir> The name of apk that gets written. Default is dist/name.apk 
-p,--frame-path <dir> Uses framework files located in <dir>.

For additional info, see: http://code.google.com/p/android-apktool/ 
For smali/baksmali info, see: http://code.google.com/p/smali/  用于Odex-dex后面说这个的使用

error:

jarsigner: 找不到xxx的证书链。xxx必须引用包含私有密钥和相应的公共 密钥证书链的有效密钥库密钥条目。

出现类型提示是因为alias没有填写正确。

使用aiqiyi客户端测试,重新打包签名后正常运行没问题。

时间: 2024-10-08 08:13:58

APK反编译、修改、重打包、签名的相关文章

【Android 应用开发】 Android APK 反编译 混淆 重编译

反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : [email protected]:~/decompiler$ tree -L 2 . ├── linux │   ├── apktool │   ├── dex2jar-0.0.9.15 │   └── jd-gui ├── mac │   ├── apktool │   ├── dex2jar-0.0.9.15 │   └── jd-gui-0.3.5.

Unity3D对apk反编译、重编译、重签名

本文源链接:http://blog.csdn.net/qq393830887/article/details/56025923 工具 Java环境 Apktool(这玩意有些坑爹,不是官网最新的就好,找到一个好用的版本能少很多坑) Apktool Jarsigner 反编译 var argList = ProcessHelper.CreateArgumentsContainer(); argList.Add("java -jar"); argList.Add(ApkToolPath);

apk反编译和重新打包

最近用anysdk接android,接入有点小麻烦,不过确实带来了很大的便利,接入新渠道只需要设置参数就可以了,唯一要注意的就是,发布的时候把debugMode关闭. 不过android下面的anysdk有个问题,就是所有渠道必须用同一套资源,然后使用母包生成渠道包,包之间无法做差异化,这与我们项目有点矛盾.要解决这个问题,能想到的有两个办法: 母包就将某个渠道的最终资源弄进去,再生成渠道包,这个确实可行,但是实在太麻烦,不好维护,而且使anysdk带来的便利大大降低. 一次性生成所有渠道包,再

Java-----jar反编译修改重新打包

http://blog.csdn.net/hekewangzi/article/details/44676797 一.使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编译class文件)打开要修改的jar包(如update.jar),找到jar包中要修改的class文件(如a.class) 二.打开Eclipse新建一个Java工程(如demo),并添加一个类(如A.java:该类名与a.class文件中的类名一致,所在包结构与a.class文件中的类所在的包结构一致),复

[转]Android应用安装包apk文件的反编译与重编译、重签名

背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />权限.在只有被测试APP的apk文件的情况下,修改apk文件后缀名为zip,解压缩后,修改AndroidManifest.xml文件,删除META-INF文件夹,重压缩为apk文

【Android】apk反编译与防止反编译

反编译 相关工具下载:http://pan.baidu.com/s/1bnAkIb9 apktool 这是一个可以对apk进行反编译和重打包的工具. 下载地址:http://code.google.com/p/android-apktool/ 反编译apk 1.把apk文件放到apktool解压目录下. 2.打开命令行,cd到工具解压缩目录,使用"apktool d apk文件路径"命令反编译apk. apktool反编译命令辅助脚本代码(windows) 3.反编译生成的文件就在工具

android逆向基础:apk 反编译 重打包 重签名

apk 反编译大家都比较熟悉,这里只做一个笔记. 1 反编译 apk apktool d perfect.apk 这样就把资源文件解压缩了, classes.dex 也反编译成了 smali 文件 2 修改 smali 文件 得到 smali 文件,现在就可以对 smali 文件进行修改和添加自己的代码了. 当然可以进一步用  dex2jar 处理将  dex 转成 java class 文件, 再用  jd-jui 等反编译成 java 代码. 现在 apk 基本都做了混淆, 但仔细读还是基本

Android apk反编译基础(apktoos)图文教程

本文主要介绍了Android apk反编译基础,使用的工具是apktoos,我们将用图文的方式说明apktoos工具的使用方式,你可以参考这个方法反编译其它APK试试看了 很久有写过一个广工图书馆主页一个类爬虫的demo(因为没接口,只能扒取静态网页),实现一些图书馆系统的一些功能.但最近发现图书馆系统在html页面上做了手脚,一页html页面中嵌入了几千行的注释,并有了自己的App,应该是为了增加扒取的流量成本来防止别人去扒取网页,不过加注释这手段就不敢恭维了,内网访问速度还行,但外网访问的话

APK Multi-Tool强大的APK反编译工具终极教程

一.APK Multi-Tool介绍    APK Multi-Tool 是APK Manager的升级版,是一个强大的APK反编译工具,集多种功能于一身,是居家必备.做ROM必选的工具!    这是一个比较方便的适合非开发者的小工具,可以对一些APK程序做自己喜欢的修改!    目前官方最新版是APK Multi-Tool 1.0.3 ,官方网站是:http://apkmultitool.com 二.汉化说明    此版本基于官方 APK Multi-Tool 1.0.3 (05/17/201

Ubuntu下Android APK反编译与重新编译

1.反编译APK文件 反编译APK需要利用ApkTool工具,下载地址 https://bitbucket.org/iBotPeaches/apktool/downloads http://ibotpeaches.github.io/Apktool/install/ 1,按照安装说明,先右键下载apktool的脚本,再下载最新的apktool 2,先确保你的系统安装了32位平台(依赖)库,如果你ubuntu是13.10后版本,可以试试 sudo apt-get install lib32z1 l