1.如何重签名APK文件

2.Android开发之通过apksigner对apk进行v2签名

3.apk签名工具

4.如何给Android的apk重新签名

5.手机怎么给APK签名

apk 重签名_对apk重新签名

android应用安装到手机的是一个apk文件。apk是可以用工具进行反编译并重新打包的。本文将介绍下如何用apktool对apk进行反编译并重新打包。

工具/原料

apktool

auto sign

方法/步骤

首先我们新建一个android项目,里面只有一个MainActivity,而且主界面只会显示一个字符串:你好。

下面,我们切换到这个项目生成的apk文件所在的目录,可以看到有一个hellodemo.apk。

在命令行输入:apktool d -r hellodemo.apk。可以看到在当前目录下生成了一个hellodemo文件夹。

进入到hellodemo\smali\com\example\hello,打开MainActivity.smali。找到:

const-string v1, "\u4f60\u5d",

修改为:

const-string v1, "hello",

然后在命令行输入:apktool b hellodemo hellodemo1.apk。这回重新打包成hellodemo1.apk。

然后给新生成的apk进行签名。把这个apk拷贝到autosign的目录下面,然后切换过去,在命令行输入:ja -jar signapk.jar testkey.x509.pem testkey.pk8 hellodemo1.apk hellodemo.apk。

步骤阅读

把生成的hellodemo.apk安装到手机,可以看到主界面上已经显示的是hello,而不再是你好。说明反编译重新打包成功!

如何重签名APK文件

apk重新签名后黑屏原因是InstantRun对Apk的一些部署。使用特殊的key签名可以获取到一些不同的权限。APK使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止已安装的应用被恶意的第三方覆盖。

Android开发之通过apksigner对apk进行v2签名

方法/步骤

方法一:需要删除apk包中的签名文件,META-INF(更改apk格式为压缩包形式,删除META-INF文件夹,改回.apk格式);

将证书(debug.keystore)复制到与需要重新签名的apk文件相同的目录下(如:复制到D:\Sign);

进入cmd模式,进入D:\Sign目录;

运行下面的命令jarsigner -verbose -keystore debug.keystore -storepass android -signedjar PhoneBook_signed.apk -digestalg SHA1 -sigalg MD5withRSA PhoneBook.apk androiddebugkey/*解释:-jarsigner是Ja的签名工具-verbose参数表示:显示出签名详细信息-keystore表示使用当前目录中的debug.keystore签名证书文件-storepass android表示Keystore密码:“android”-signedjar PhoneBook_signed.apk表示签名后生成的APK名称PhoneBook.apk表示未签名的APK Android软件-digestalg SHA1 -sigalg MD5withRSA:这就是必须加上的参数,如果你是jdk 1.6也不受影响-androiddebugkey表示Key别名

大功告成,看看文件夹吧;

方法二:使用工具re-sign.jar。打开re-sign.jar。删除签名文件,META-INF后,拖动apk到re-sign.jar处,并点击保存;

大功告成,看看文件夹吧;

apk签名工具

在 Android 7.0 Nougat 中引入了全新的 APK Signature Scheme v2签名方式,美团也推出相应的 Android渠道包生成工具Walle 。

360加固后需要重新签名,借助360官方提供的 签名工具qihoo apk signer ,是用的7.0以前的v1签名,这时再通过walle打渠道包,是无法成功往apk写入渠道号的。这时我们就必须借助 Android SDK提供的apksigner 工具对已经打包好的apk进行v2签名。

Android官方文档已经对 apksigner的使用 有比较详细的解释。下面说说实际的操作步骤:

zip对齐,因为APK包的本质是一个zip压缩文档,经过边界对齐方式优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗 ,通过空间换时间的方式提高执行效率(zipalign后的apk包体积增大了100KB左右)。

打开cmd,把目录切换到SDK的build-tools目录下(例如 E:\SDK\build-tools\25.0.2\ ),执行:

zipalign命令选项不多:

-f : 输出文件覆盖源文件

-v : 详细的输出log

-p : outfile.zip should use the same page alignment for all shared object files within infile.zip

-c : 检查当前APK是否已经执行过Align优化。

另外上面的数字4是代表按照4字节(32位)边界对齐。

这个工具位于SDK目录的build-tools目录下。必须说明的是,v2签名方式时在Android7.0后才推出的,所以只有 版本>25 的SDK\build-tools\中才能找到apksigner.jar。

打开cmd,把目录切到SDK\build-tools\版本号\lib下(例如 E:\SDK\build-tools\25.0.2\lib ),执行:

示例:

apksigner还支持另外的一些选项, 详情点击这里 。包括指定min-sdk版本、max-sdk版本、输出详细信息、检查apk是否已经签名等等。

例如检查apk是否已经签名:

zipalign + apksigner,两步走完成对apk包的v2签名。且以上工具位于AndroidSDK目录的build-tools中。

如何给Android的apk重新签名

对apk进行反编译并修改后,需要对重新打包的apk进行签名。

秘钥生成工具——keytool

路径:jdk/bin/keytool.exe

生成秘钥: keytool -genkeypair -keystore test.keystore -alias test -validity 10 -keyalg RSA

其中-validity指定有效期天数,-keyalg指定算法

查看秘钥信息: keytool -list -v -keystore test.keystore

JDK签名工具——jarsigner

仅支持V1签名

路径:jdk/bin/jarsigner.exe

命令: jarsigner -keystore test.keystore test.apk testkey

apk签名工具——apksigner

默认开启V1和V2签名

路径:AndroidSDK/build-tools/28.0.0/apksigner.bat

命令: apksigner sign --ks xx.keystore --ks-key-alias testkey test.apk

手机怎么给APK签名

使用signapk.jar + testkey.x509.pem + testkey.pk8三个文件签名

电脑需要安装JAVA,然后在CMD中运行

ja -jar signapk.jar testkey.x509.pem testkey.pk8 no.apk yes.apk

CMD一定要运行在signapk.jar它们三个文件所在目录。no.apk为未签名的文件,yes.apk为签名后保存的文件,这两个根据你的文件来设定。

经常在手机端修改Android软件的同学肯定知道,在APK被修改之后就需要重新来签名,否则是无法正常安装的。既然是手机党,自然接触电脑的机会就少了很多,小编也不去教大家如何在电脑上给APK签名了,咱们就说说如何用天天握在手上的手机怎么签名APK文件吧。

这里需要用到手机端签名的工具ZipSigner,这个工具不仅可给APK签名,还支持zip及jar格式。自己修改过ROM包后也可用它来进行签名。大伙先在手机上安装好。

去除APK原签名文件

我们把修改完成的APK在电脑上用解压缩软件打开,打开到META-INF文件夹,把里面的几个签名文件都删除,这个步骤是为了提高签名的成功率,通常不做也可以。

APK签名

ZipSigner安装后打开界面如图,默认的签名文件为SD卡上的unsigned.zip,可以把需要签名的APK改成这个名字,放到SD卡根目录,进行签名,签名后把signed.zip后缀名改成APK就可以了。也可以不用改名,把需要签名的APK文件放到SD卡根目录,然后点“选择输入/输出文件”,找到要签名的APK,程序里的ZipSigner输入/输出文件名也自动会相应更改了。文件选择好后点“签名选择文件”很快签名就完成了。

签名后安装

我们验证下签名后的APK程序是否能正常安装,用文件管理器在SD卡找到刚签名生成的APK,进行安装,果然可以正常安装了,好了,可以收工了。

签名其实就是一个很简单的过程,只不过我们可以用程序把他简单化。当然大家记住一个原则,无论是修改了APK的什么元素,只要是APK的结构产生了变化,就一定需要重新签名才能正常使用。