Android应用签名基础教程

更新:11-09 民间故事 我要投稿 纠错 投诉

大家好,今天小编来为大家解答Android应用签名基础教程这个问题,很多人还不知道,现在让我们一起来看看吧!

为什么Android 需要对密钥库进行签名? Android如何签名并检查apk是否已签名?检查Apk的MD5值以及MD5不显示时的解决方法。

Android 为什么要签名

安装apk时,需要保证apk来源的真实性,且apk未被第三方篡改。为了解决这个问题,Android官方要求开发者对apk进行签名。所谓签名就是对apk进行加密的过程。

keystore的生成:

生成密钥库文件以在签名前存储密钥

(1)分阶段生成:

keytool -genkey -alias yushan(别名) -keypass yushan(别名密码) -keyalg RSA(算法) -keysize 1024(密钥长度) -validity 365(有效期,天单位) -keystore 指定路径/yushan.keystore(指定生成)证书的位置和名称)-storepass 123456(获取keystore信息的密码)然后回车输入相关信息;

keytool -genkey -alias test -keypass testmima -keyalg RSA -keysize 1024 -validity 365 -keystore /Users/xxx/Desktop/test.keystore 或:

keytool -genkey -v -keystore test.keystore -alias test -keyalg RSA -validity 365 -storepass 123456image(2) 一次性生成:

keytool -genkey -alias test -keypass test -keyalg RSA -keysize 1024 -validity 365 -keystore 指定路径/test.keystore -storepass 123456 -dname "CN=(名字和姓氏),OU=(组织单位名称), O=(组织名称)、L=(城市或地区名称)、ST=(州或省名称)、C=(单位两字母国家代码)"(中英文即可)

keystore信息的查看:

keytool -list -v -keystore test.keystore -storepass 123456

image

参数说明:

-genkey [生成密钥对] -alias [别名] -keypass [私钥旧密码] -keyalg [密钥算法] -keysize [密钥长度] -validity [有效期,以天为单位] - keystore [密钥库location] -storepass [密钥库密码] -dname [指定证书所有者信息] 一般公司会在项目的keystore目录下创建一个key.properties文件,用于记录keystore密钥信息。内容是:

key.store=keystore/test.keystore

key.store.password=123456

key.alias=测试

key.alias.password=testmima

key.sigalg=RSA

Android 怎么签名

通过使用 Java 自带的 keytool 和 jarsigner 工具或 apksigner 工具(android 11)进行签名。

使用 jarsigner 签名

/Library/Java/JavaVirtualMachines/xxx.jdk/Contents/Home/bin

需要输入jarsigner的位置,使用以下命令对名为test的apk进行签名:

jarsigner -verbose -keystore test.keystore [密钥库路径] test.apk [apk 名称] test [别名]

如何查找 jdk 位置

java -version 可以查看java版本

java -verbose 可以查看jdk路径等信息

java-详细

当java -verbose

签名时遇到的问题

安装在Android 11 设备上时,可能会出现以下内容:

失败[-124: installPackageLI: 期间解析失败目标为R+(版本30 及更高版本)要求已安装APK 的resources.arsc 未压缩存储并在4 字节边界上对齐]

出现上述问题的原因:

是关于zip 4字节对齐的,请参考zipalign

解决方案:

使用 apksigner 对其签名假设需要签名的文件为:source.apk

首先进入/Users/xxx/Library/Android/sdk/build-tools/30.0.3,删除路径中客户的v1签名,即删除META-INF目录(签名信息存储在META-INF目录中) ,这可能会导致错误)META-INF/* 未找到,不重要)

zip -d source.apk META-INF/*获取4KB对齐的apk(source_4.apk为对齐结果文件)

zipalign -v 4 source.apk source_4.apk 检查生成的文件是否对齐(成功后会报告:验证成功)

zipalign -c -v 4 source_4.apk,然后通过apksigner 对其进行签名。您不能使用jarsigner 对其进行签名。

apksigner sign --ks(签名地址) --ks-key-alias(别名) --out(签名的apk地址)(待签名的apk地址) 密码库短语为:keystore密码(上面的123456) :010 -1010 查看source_4.apk 是否已签名以及签名类型是什么。

apksigner 验证-v source_4.apk

查看 apk 是否签名

将以.apk 结尾的APK 文件替换为.zip 文件。解压zip 文件并找到META-INF/xx.RSA 文件。使用该命令查看MD5信息。

keytool -printcert -file [xx.RSA文件所在路径] 有时看不到MD5值,可以使用命令行:

jadx-gui 目标文件.apk

查看MD5签名、SHA-1签名、SHA-256签名信息中的APK签名

例如:

看不到MD5值。通过jadx-gui 检查一下。 MD5xx.RSA 文件是签名文件。如果不指定名称,别名中的前8 个字符将被自动截取。

一般上传到市场平台时会提示解析失败,没有签名文件。该文件可能丢失。

查看 Apk 的MD5值或 SHA1 以及MD5不显示时的解决办法

xx.RSA 文件丢失的原因很可能是因为未选择V1 签名方法。

Android 7.0 中引入了

缺少 xx.RSA 文件的原因

V2 签名方案,该方案可提供更快的应用程序安装时间,并针对未经授权的APK 文件更改提供更多保护。详情请参阅此处。 V1适用于所有Android版本的机型,但在Android 7.0及以上版本上缺乏针对未经授权的APK文件更改的保护。因此,仅选择V2。 Android 7.0以下的机型会报错。同时选择V1和V2。适用于所有型号。

默认情况下,选择V1和V2进行命令行打包。如果不确定,可以在build.gradle中设置。

在应用程序的build.gradle的android标签下添加以下内容:

签名配置{

调试{

v1signing启用true

v2signing 启用true

}

发布{

v1signing启用true

v2signing 启用true

}

关于Android应用签名基础教程和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

用户评论

断桥残雪

想了解一下手机上那些应用怎么保证安全可靠。

    有8位网友表示赞同!

你很爱吃凉皮

最近被朋友拉进安卓开发的圈子,这方面的知识比较重要吧。

    有10位网友表示赞同!

无所谓

以前没注意过这个东西,现在觉得学习一下很有用!

    有11位网友表示赞同!

挽手余生ら

看标题就感觉有点专业的样子,我得查查资料了。

    有5位网友表示赞同!

红玫瑰。

希望这篇文章能解释清楚安卓签名的原理,不要太难懂!

    有14位网友表示赞同!

桃洛憬

了解签名的知识能让我想办法保护自己的手机安全一些啊。

    有8位网友表示赞同!

涐们的幸福像流星丶

这个知识点听起来很有意思,我打算好好学习一下.

    有14位网友表示赞同!

裸睡の鱼

要是能掌握安卓签名基础知识,那开发应用就更有保障了!

    有5位网友表示赞同!

笑傲苍穹

以前没想过这些应用背后还有这么复杂的技术支撑!

    有14位网友表示赞同!

何必锁我心

想了解更多关于安卓系统背后的安全机制!

    有12位网友表示赞同!

病房

希望这篇文章能让我知道如何判断一个应用的安全性。

    有14位网友表示赞同!

无望的后半生

学完这篇文章,我希望自己能像专家一样理解安卓签名!

    有8位网友表示赞同!

男神大妈

学习安卓开发需要了解这些基础知识吗?

    有11位网友表示赞同!

执妄

这个标题很有吸引力,我现在就去看看详细内容了!

    有7位网友表示赞同!

煮酒

希望能介绍一些实际案例,让我更清晰地理解安卓签名!

    有8位网友表示赞同!

?亡梦爱人

希望这篇文章能讲解清楚签名的不同类型和用途。

    有12位网友表示赞同!

咆哮

对于开发者来说,掌握安卓签名基础知识的确很重要!

    有15位网友表示赞同!

独角戏°

这个知识点听起来很专业,但我相信这篇文能解释得通俗易懂!

    有13位网友表示赞同!

在哪跌倒こ就在哪躺下

期待学习安卓签名基础知识,增强自己的安全意识!

    有9位网友表示赞同!

【Android应用签名基础教程】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:星期日的早晨7:26 下一篇:免费淘客机器人手机版获取与使用指南