提取应用的签名和包名

作者: SpikeKing | 来源:发表于2016-03-09 13:27 被阅读3060次

欢迎Follow我的GitHub, 关注我的简书. 其余参考Android目录.

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

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

fingerprint

1. 签名

获取签名包含两种方式:
(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.


2. 包名

查看包名就一行命令, 显示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.

相关文章

  • 提取应用的签名和包名

    欢迎Follow我的GitHub, 关注我的简书. 其余参考Android目录. Android应用在使用第三方的...

  • 批量提取apk包名和应用名

    有一堆apk,要解析出包名和应用名,怎么搞? 现学现用,正好遇到了使用了Android sdk的aapt工具cmd...

  • Android应用唯一性

    说到应用唯一性,下面三个关键词,有何区别和联系呢? 包名 applicationId 签名 包名 定义简介 包名指...

  • uniapp 获取应用签名申请微信登录授权

    uniapp 获取应用签名申请微信登录授权 科普安卓 app 有两个重要的识别标志表现为应用包名应用签名 获取应用...

  • 百度地图实例开发

    【 申请密钥AndroidSDK:应用程序包名+数字签名 As查看数字签名:cmd-----cd .android...

  • Android各大市场应用认领jarsigner 签名空包

    前言 经常遇到上传应用市场的时候。出现包名被占用,需要下载空包用自己的签名重新签名一下上传应用市场去认领应用 认领...

  • 安卓---关于签名的学习笔记

    今天接触到了签名,关于签名,记录一下我目前所理解的签名流程 为什么要签名:通过包名+签名确定应用的唯一性 1.首先...

  • APK获取的签名信息

    当申请一些第三方的 AppKey 的时候时候,会要求提供应用的签名信息和包名,包名我们都知道,下面介绍一种方式获取...

  • adb常用命令

    文件提取/推送 设置时间 查看设备 查看activity堆栈 启动Activity 根据包名查询指定应用的pid ...

  • jni_获取应用包名、签名

    java 层 native 层 key.cpp key.h Android.mk Application.mk b...

网友评论

  • 小包_24e7:兄弟,我上传了第一版的安卓APP,后来有做了更新,再打包APP上传,说证书不一样,我实在是搞不了。原来的APP又不能删,咋办?
    余生小:检查一下签名是不是一致。

本文标题:提取应用的签名和包名

本文链接:https://www.haomeiwen.com/subject/ikozkttx.html