提取应用的签名和包名

欢迎Follow我的GitHub, 关注我的CSDN, 未经授权, 禁止转载.

验证

本文的合集已经编著成书,高级Android开发强化实战,欢迎各位读友的建议和指导。在京东即可购买:https://item.jd.com/12385680.html

Book

Android应用在使用第三方的库时, 可能需要申请密钥, 表明应用身份, 如高德定位SDK等. 应用签名(printcert)是公开的, 只要下载到Apk包, 就可以公开提取. 签名中包含MD5, SHA1, SHA256. 应用唯一性就是表现为签名+包名, 就像人的指纹一样重要, 是确定应用属性的重要信息, 也是应用商店检测盗版应用的途径.

本文讲解如何提取应用的签名和包名.


签名

获取签名包含两种方式:
(1) Keystore
系统默认签名: 存放位置: ~/.android/debug.keystore.
日常测试应用的签名, 均来自于此, 提取密钥.

keytool -list -v -keystore debug.keystore

输入默认密钥库口令: android
即可显示

证书指纹:
	 MD5: 97:0B:1C:...
	 SHA1: 47:DF:70:...
	 SHA256: 83:F9:04:...
	 签名算法名称: SHA256withRSA
	 版本: 3

自定义签名: 进入到存放keystore的文件夹,使用命令:

keytool -list -v -keystore [xxx] -keypass [xxx]

显示默认签名类似的效果.

(2) RSA
已经编译成Apk的包, 我们无法获取Keystore, 但是可以在RSA中获取签名.
修改Apk包的后缀名, 从".apk"变为".zip", 解压缩.
进入META-INF文件夹, 即cd META-INF.
使用命令

keytool -printcert -file CERT.RSA

即可, 显示Apk的签名.

获取MD5, SHA1, SHA256.


包名

查看包名就一行命令, 显示Apk的信息.

aapt dump badging [xxx.apk]

输出, package: name, 即包名.

package: name='xxx.xxx.xxxxx' 
...

注: 也可以修改本地包名, 匹配已经存在的密匙.
修改应用包名的方法, 在build.gradle中, 添加applicationId, 即

android {
    defaultConfig {
        applicationId "com.amap.location.demo"
        // ...
    }
}

修改包名为com.amap.location.demo.

未添加gradle的参数, 默认位置是AndroidManifest.xml,
其中manifest的package属性, 表示包名, 即

<manifest package="wangchenlong.chunyu.me.wcl_amap_demo">

build.gradle的包名属性优先级高于manifest, 其他属性也是一样.


在第三方库的开发者平台输入签名和包名, 就可以生成唯一密钥, 放到程序中, 就可以使用库了.

签名+包名, 表明Apk的唯一身份, 防止盗版仿冒的Apk出现, 是Android的安全机制.

PS: 公司经常使用第三方库, 需要申请唯一的账号, 统一管理; 作为开发者, 在测试时, 也需要申请一些测试Key, 加快开发速度.

OK, that’s all! Enjoy it.

最初发布地址:
http://www.wangchenlong.org/2016/03/12/1602/get-app-cert-and-package/
欢迎Follow我的GitHub, 关注我的简书, 微博, CSDN, 掘金.
我已委托“维权骑士”为我的文章进行维权行动. 未经授权, 禁止转载, 授权或合作请留言.

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SpikeKing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值