Android-提取应用的签名和包名

标签: android 应用 签名 | 发表时间:2017-08-16 14:04 | 作者:chaoyu168
分享到:
出处:http://blog.csdn.net

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

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


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的安全机制.





作者:chaoyu168 发表于2017/8/16 16:36:56 原文链接
阅读:108 评论:0 查看评论

相关 [android 应用 签名] 推荐:

Android-提取应用的签名和包名

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

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.

Android 应用程序

- - CSDN博客推荐文章
Android 应用程序由四个模块构造而成:Activity、Intent 、Content Provider 、Service. 下面简单介绍一下如下模块的含义:. 1、Activity  "活动". 一个Activity就是单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口并对事件作出响应.

android应用框架

- - CSDN博客移动开发推荐文章
原文地址:http://developer.android.com/guide/components/fundamentals.html. android应用程序一旦装进设备,每个程序会在它自己安全的沙盒里运行. 1.android操作系统是一个多用户linux系统,每一个应用程序是一个用户. 2.默认情况下,系统会为每个app分配唯一的linux用户id(这个id只会被系统使用,并且只会被这个app知道),系统为每个app的所有文件都设置了权限,只有被分配了这个app用户ID的程序可以访问它.

Android 应用界面设计

- - 互联网的那点事...
与 iOS 相比,Android 系统界面存在各种不协调,应用界面本身缺乏统一的规范. 虽然 Android 的开放性为应用的自主发挥带来了最大的可能性,但如果系统本身能够提供标准的范例,也未必是一件坏事,毕竟许多应用并不一定需要独创的界面. 从 Android 4.0 开始,系统界面在一致性上有了许多改善,那么 Android 应用的界面应该如何设计.

Android应用开发资源

- - InfoQ cn
Android应用设计和开发人员现在可以参考由Android用户体验(UX)团队官方发布的 Android设计指南. 该指南提供了开发者应该遵循的基本原则,并列出了很多细节指导,涉及 设备与显示、 主题、 触控交互、 度量与栅格、 排版、 色彩、 图标设计,以及如何 编写用户交互界面的提示语.

Android应用性能 分析

- - CSDN博客推荐文章
  其实主要是内存方面,内存管理是个永恒的话题. 1.从工具DDMS中,在Sysinfo的tab栏里面有一个Memory usage的选项,通过USB连接Android设备以后很容易抓到图. 在图中可以看到系统随时可以用的内存是Free和Buffers两项,因为我抓图的系统只有128M的内存,所以看上去这部分可用内存已经很少了.

Android应用性能测试

- - CSDN博客推荐文章
java虚拟机有内存使用上限的限制. adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop. 单个应用程序最大内存限制,超过这个值会产生OOM. 单个java虚拟机最大的内存限制,超过这个值会产生OOM. android程序内存一般限制在16M,当然也有24M的,而android程序内存被分为2部分:.

ANDROID应用安全防御

- - 移动开发 - ITeye博客
Android应用的安全隐患包括三个方面:代码安全、数据安全和组件安全.   代码安全主要是指Android apk有被篡改、盗版等风险,产生代码安全的主要原因是apk很容易被反编译、重打包. 我们可以采用以下方法对apk进行保护:.   代码混淆可以在一定程度上增加apk逆向分析的难度. Android SDK从2.3开始就加入了ProGuard代码混淆功能,开发者只需进行简单的配置就可以实现对代码的混淆.