APK重新签名或者更换APK签名版本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APK重新签名或者更换APK签名版本相关的知识,希望对你有一定的参考价值。
参考技术A在某些特殊情况下,需要对已经生成的apk进行重新签名,或者对已经生成的apk更换签名版本(v1/v2/v3/v4)。如何实现呢? 可以通过命令行对已生成的apk进行处理。
apksigner.jar通常包含在android SDK中可。路径一般是在Android SDK/build-tools/ SDK版本 /lib/apksigner.jar
不同的SDK版本中均有一个,取最新版本的就好了。
使用压缩软件打开apk,删除包内 /META-INF/ 文件夹及文件夹内所有文件,并重新压缩文件。
准备好签名证书及相关密码和需要刚处理过得apk文件
示例:
执行命令
接着输入证书保护密码及别名密码。
可以从此命令的输出中看出当前生成的apk签名情况。
可以通过如下命令行参数进行控制
--v1-signing-enabled true
--v2-signing-enabled true
--v3-signing-enabled false
使用的签名版本还跟apk编译时使用的最低SDK版本有关, 即min-sdk-version的值。如果设置的值大于等于26,即使添加--v1-signing-enabled true 也无法通过上述步骤签V1版本的签名--仅有V2签名(Android Studio也是)。
可以对最后生成的apk通过执行如下命令尝试:
怎么给修改后的apk重新签名?
一个是我想修改apk,设置一个我所固有的签名,以后给其他apk签名也可以弄同一个签名,再就是怎么给apk设置版本,以便以后更新覆盖
1、首先我们要对apk文件进行改名与后缀,将其连同后缀一起改掉,如1.zip。
2、这时文件就变成一个zip压缩包了,可提取解压这个压缩包,打开这个解压的文件,会看到里面构成程序文件的很多东西,然后根据网上教程对程序进行简要修改。
(当然如果要反编译的话就不是这样子了,不过直接解压也是可以修改很多东西的),这里修改操作建议在电脑端完成比较方便,修改后重新将这些文件压缩成zip格式。
3、下载安装ZipSigner手机签名工具,并打开。
4、点击输入,浏览文件目录找到刚修改好并重新压缩的zip文件,在输出选项可以修改其名称,然后点击签名,模式为auto-testkey就可以了,等一会就签名未完成了。
apk文件结构:
1、META-INF\\(注:Jar文件中常可以看到)。
2、res\\(注:存放资源文件的目录)。
3、AndroidManifest.xml(注:程序全局配置文件)。
4、classes.dex(注:Dalvik字节码)。
5、resources.arsc(注:编译后的二进制资源文件)。
参考技术A给修改后的apk重新签名的方法为:
1、首先,删除apk包中的签名文件。在左侧的压缩文件中,找到META-INF选项,并删除。
2、再次更改apk格式为压缩包形式,将其改回.apk格式。找到证书debug.keystore,将其复制到与需要重新签名的apk文件相同的目录下。
3、按“WIN+R”,打开【运行】;输入“cmd”,进入D:\\Sign目录;
4、运行下面的命令,-androiddebugkey表示Key别名。
5、最后,修改后的apk重新签名就完成了。
参考技术B给修改后的apk重新签名方法:
工具:ZipSigner手机签名工具(搜一下这个名字就能找到apk软件);安卓手机;
1、首先我们要对apk文件进行改名与后缀,将其连同后缀一起改掉,如1.zip:
2、这时文件就变成一个zip压缩包了,可提取解压这个压缩包,打开这个解压的文件,会看到里面构成程序文件的很多东西,然后根据网上教程对程序进行简要修改(当然如果要反编译的话就不是这样子了,不过直接解压也是可以修改很多东西的),这里修改操作建议在电脑端完成比较方便,修改后重新将这些文件压缩成zip格式:
3、下载安装ZipSigner手机签名工具,并打开:
4、点击输入,浏览文件目录找到刚修改好并重新压缩的zip文件,在输出选项可以修改其名称,然后点击签名,模式为auto-testkey就可以了,等一会就签名未完成了:
参考技术C 签名,可以用jarsigner
打命令行有提示使用方法
版本在xml中设置
http://developer.android.com/tools/publishing/versioning.html#appversioning追问
版本号在哪个xml修改?反编译还是解压缩状态? 在安卓市场发布更新时,多个个apk会不会因为签名一致而互相覆盖? 你说的这个软件能设置自己特有的签名吗?如输入一串密码,然后围绕这个密码进行算法生成一个签名
本回答被提问者采纳以上是关于APK重新签名或者更换APK签名版本的主要内容,如果未能解决你的问题,请参考以下文章