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

简介: 版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/77251838 Android应用在使用第三方的库时, 可能需要申请密钥, 表明应用身份, 如高德定位SDK等.
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/77251838

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





目录
相关文章
|
19天前
|
IDE Java 开发工具
深入探索安卓应用开发:从环境搭建到第一个"Hello, World!"应用
本文将引导读者完成安卓应用开发的初步入门,包括安装必要的开发工具、配置开发环境、创建第一个简单的安卓项目,以及解释其背后的一些基本概念。通过一步步的指导和解释,本文旨在为安卓开发新手提供一个清晰、易懂的起点,帮助读者顺利地迈出安卓开发的第一步。
197 65
|
19天前
|
存储 Java Android开发
探索安卓应用开发:构建你的第一个"Hello World"应用
【9月更文挑战第24天】在本文中,我们将踏上一段激动人心的旅程,深入安卓应用开发的奥秘。通过一个简单而经典的“Hello World”项目,我们将解锁安卓应用开发的基础概念和步骤。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供一次实操体验。从搭建开发环境到运行你的应用,每一步都清晰易懂,确保你能顺利地迈出安卓开发的第一步。让我们开始吧,探索如何将一行简单的代码转变为一个功能齐全的安卓应用!
|
3天前
|
JSON API Android开发
探索安卓开发之旅:打造你的第一个天气应用
在这篇文章中,我们将一起踏上一段激动人心的旅程,学习如何在安卓平台上开发一个简单的天气应用。通过实际操作和代码示例,我们将逐步构建一个能够显示当前位置天气情况的应用。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供清晰的指导和启发性的见解,帮助你理解和掌握安卓开发的基础知识。让我们一起探索代码的世界,解锁新技能,实现你的创意和梦想。
|
7天前
|
安全 Java API
Java 泛型在安卓开发中的应用
在Android开发中,Java泛型广泛应用于集合类、自定义泛型类/方法、数据绑定、适配器及网络请求等场景,有助于实现类型安全、代码复用和提高可读性。例如,结合`ArrayList`使用泛型可避免类型转换错误;自定义泛型类如`ApiResponse&lt;T&gt;`可处理不同类型API响应;RecyclerView适配器利用泛型支持多种视图数据;Retrofit结合泛型定义响应模型,明确数据类型。然而,需注意类型擦除导致的信息丢失问题。合理使用泛型能显著提升代码质量和应用健壮性。
|
3天前
|
XML 数据可视化 Android开发
Android应用界面
Android应用界面中的布局和控件使用,包括相对布局、线性布局、表格布局、帧布局、扁平化布局等,以及AdapterView及其子类如ListView的使用方法和Adapter接口的应用。
9 0
Android应用界面
|
24天前
|
开发框架 搜索推荐 开发工具
打造个性化安卓应用:从零开始的Flutter之旅
【8月更文挑战第51天】本文是一篇面向初学者的Flutter入门教程,旨在通过简单易懂的语言和实际代码示例,引导读者步入跨平台移动应用开发的世界。文章首先介绍了Flutter的基本概念和优势,然后逐步展示了如何搭建开发环境、创建第一个Flutter应用,并实现了一个简单的待办事项列表。最后,文章探讨了Flutter在实现高性能和美观界面方面的潜力,鼓励读者发挥创意,探索更多可能。
77 15
|
14天前
|
监控 安全 Java
Kotlin 在公司上网监控中的安卓开发应用
在数字化办公环境中,公司对员工上网行为的监控日益重要。Kotlin 作为一种基于 JVM 的编程语言,具备简洁、安全、高效的特性,已成为安卓开发的首选语言之一。通过网络请求拦截,Kotlin 可实现网址监控、访问时间记录等功能,满足公司上网监控需求。其简洁性有助于快速构建强大的监控应用,并便于后续维护与扩展。因此,Kotlin 在安卓上网监控应用开发中展现出广阔前景。
12 1
|
6天前
|
XML 存储 Java
探索安卓开发之旅:从基础到进阶
【9月更文挑战第37天】安卓开发,一个充满无限可能的领域。它不仅关乎技术的深度与广度,更关乎开发者的成长与突破。本文将带你走进安卓开发的世界,从基础知识的学习到进阶技巧的掌握,一起感受编程的魅力与乐趣。
|
Android开发 数据安全/隐私保护
手把手教你使用Android studio生成正式签名的APK文件
首先,成功编译和运行程序: 项目code 运行效果图 点击Android studio 右侧工具栏的Gradle → 项目名 → :app → Tasks →android, 双击signingReport: 结果如图所示: 也就是说,我们所有通过Android studio来运行的程序都是使用了这个debug.keystore文件来进行签名的: 不过这仅仅适用于开发阶段而已,现在如果是要发布app,便需使用一个正式的keystore文件来进行签名才行。
1284 0