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





目录
相关文章
|
11天前
|
IDE Java 开发工具
深入探索安卓应用开发:从环境搭建到第一个"Hello, World!"应用
本文将引导读者完成安卓应用开发的初步入门,包括安装必要的开发工具、配置开发环境、创建第一个简单的安卓项目,以及解释其背后的一些基本概念。通过一步步的指导和解释,本文旨在为安卓开发新手提供一个清晰、易懂的起点,帮助读者顺利地迈出安卓开发的第一步。
190 65
|
11天前
|
存储 Java Android开发
探索安卓应用开发:构建你的第一个"Hello World"应用
【9月更文挑战第24天】在本文中,我们将踏上一段激动人心的旅程,深入安卓应用开发的奥秘。通过一个简单而经典的“Hello World”项目,我们将解锁安卓应用开发的基础概念和步骤。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供一次实操体验。从搭建开发环境到运行你的应用,每一步都清晰易懂,确保你能顺利地迈出安卓开发的第一步。让我们开始吧,探索如何将一行简单的代码转变为一个功能齐全的安卓应用!
|
15天前
|
开发框架 搜索推荐 开发工具
打造个性化安卓应用:从零开始的Flutter之旅
【8月更文挑战第51天】本文是一篇面向初学者的Flutter入门教程,旨在通过简单易懂的语言和实际代码示例,引导读者步入跨平台移动应用开发的世界。文章首先介绍了Flutter的基本概念和优势,然后逐步展示了如何搭建开发环境、创建第一个Flutter应用,并实现了一个简单的待办事项列表。最后,文章探讨了Flutter在实现高性能和美观界面方面的潜力,鼓励读者发挥创意,探索更多可能。
66 15
|
6天前
|
监控 安全 Java
Kotlin 在公司上网监控中的安卓开发应用
在数字化办公环境中,公司对员工上网行为的监控日益重要。Kotlin 作为一种基于 JVM 的编程语言,具备简洁、安全、高效的特性,已成为安卓开发的首选语言之一。通过网络请求拦截,Kotlin 可实现网址监控、访问时间记录等功能,满足公司上网监控需求。其简洁性有助于快速构建强大的监控应用,并便于后续维护与扩展。因此,Kotlin 在安卓上网监控应用开发中展现出广阔前景。
9 1
|
16天前
|
Java Android开发 UED
🧠Android多线程与异步编程实战!告别卡顿,让应用响应如丝般顺滑!🧵
在Android开发中,为应对复杂应用场景和繁重计算任务,多线程与异步编程成为保证UI流畅性的关键。本文将介绍Android中的多线程基础,包括Thread、Handler、Looper、AsyncTask及ExecutorService等,并通过示例代码展示其实用性。AsyncTask适用于简单后台操作,而ExecutorService则能更好地管理复杂并发任务。合理运用这些技术,可显著提升应用性能和用户体验,避免内存泄漏和线程安全问题,确保UI更新顺畅。
38 5
|
17天前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
86 3
|
17天前
|
存储 API Android开发
"解锁Android权限迷宫:一场惊心动魄的动态权限请求之旅,让你的应用从平凡跃升至用户心尖的宠儿!"
随着Android系统的更新,权限管理成为应用开发的关键。尤其在Android 6.0(API 级别 23)后,动态权限请求机制的引入提升了用户隐私保护,要求开发者进行更精细的权限管理。
43 2
|
Android开发 数据安全/隐私保护
手把手教你使用Android studio生成正式签名的APK文件
首先,成功编译和运行程序: 项目code 运行效果图 点击Android studio 右侧工具栏的Gradle → 项目名 → :app → Tasks →android, 双击signingReport: 结果如图所示: 也就是说,我们所有通过Android studio来运行的程序都是使用了这个debug.keystore文件来进行签名的: 不过这仅仅适用于开发阶段而已,现在如果是要发布app,便需使用一个正式的keystore文件来进行签名才行。
1279 0
|
8天前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
下一篇
无影云桌面