apk 重签名_对apk重新签名
1.如何重签名APK文件
2.Android开发之通过apksigner对apk进行v2签名
3.apk签名工具
4.如何给Android的apk重新签名
5.手机怎么给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的结构产生了变化,就一定需要重新签名才能正常使用。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。