apk包中包含的是什么?签名的机制是什么?

安卓-apk系统签名篇 阅读详情

Manifest.xml配置文件

dex文件

META签名加密文件

三方包

res资源文件 

resources.arsc


参考  https://www.cnblogs.com/jenson138/p/4220668.html



签名的流程

首先要理解三个概念

数据摘要,数字签名,证书

数据摘要主要是运用算法给资源生成一个同等长度的字符串

著名的摘要算法有RSA公司的MD5算法和SHA-1算法及其大量的变体。

消息摘要的主要特点有:
1)无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出。
2)一般来说(不考虑碰撞的情况下),只要输入的原始数据不同,对其进行摘要以后产生的消息摘要也必不相同,即使原始数据稍有改变,输出的消息摘要便完全不同。但是,相同的输入必会产生相同的输出。

3)具有不可逆性,即只能进行正向的信息摘要,而无法从摘要中恢复出任何的原始消息。


数字签名  用私匙加密的数据摘要

我的理解是来源是申请签名的人,申请签名会生成一对公匙+私匙,然后申请人使私匙+数据摘要加密,加密后的东西在加上公匙一起给apk,这样就完成了数字签名的工作


证书

我们怎么知道公匙的合法性呢,就是通过证书


通过jarsigner会生成三个文件分别为.MF .SF .DSA

.MF是资源的摘要

.SF是依据.MF摘要来生成的 签名文件

.DSA是证书和公匙信息





参考 https://blog.youkuaiyun.com/jiangwei0910410003/article/details/50402000

参考 https://blog.youkuaiyun.com/chenzhen1080/article/details/73187687

参考 https://blog.youkuaiyun.com/kickxxx/article/details/18252881

APK签名机制原理详解 众所周知,Android系统在安装Apk的过程中,会对Apk进行签名校验,校验通过后才能安装成功。那你知道签名校验的机制是什么?具体校验的是什么内容吗?申请第三方SDK(如微信支付)时填入的SAH1值是什么?目前众多的快速批量打包方案又是如何绕过签名检验的?我将通过一系列的文章来解开这些疑惑。 阅读详情

相关推荐

Android安全机制(3) APK 签名机制

APK签名是Android APK安全的第一道防线,是Android APK身份的一个唯一标志

vshuang的专栏 2611

apk文件为什么要签名

很多开发人员不明白APK文件为什么必须签名才能发布,其实签名并非从 Android平台开始,在过去从Symbian OS就开始需要签名才能发布,这样可以保证每个应用程序开发商合法ID,由于Android平台没有UID3的限制,部分开放商可能通过使用相同的 Package Name来混淆替换已经安装的程序。不过目前比较好的是Android中所有的permission使用都是免费的,但从目前GIT项目中出现的 CertInstaller.git包不知道是不是和证书有关,而近几年Symbian OS从v9.0开始

懒虫一个V 3184

获取apk签名信息、抹除apk签名状态、重新签名apk

Android应用市场一般都要求apk先进行签名才可上传应用,基于安全原则很多平台加入了apk需加固后才能上传的规则; 这时候就面临一个问题,因为apk加固后,会被抹除原有的签名信息,有些平台提供了官方的加固方式,加固的同时会要求你配置好签名信息,之后便可一次完成;但是部分apk通过不同安全平台的加固后,都需要开发者手动签名加固包!故才有了此篇的意义 ~ 因为apk签名相关内容涉及到了keystore、jsk签名证书,故此推荐一下keystore、jks的知识扩展 ~ 生成keystore、jks 签.

Android、前端、小程序、后端 7250

APK 签名详解

1.签名的意义   为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性。 2.签名对你的App的影响。    你不可能只做一个APP,你可能有一个宏伟的战略工程,想要在生活,服务,游戏,系统各个领域都想插足的话,你不可能只做一个APP,谷歌建议你把你所有的

weixin_38031122的博客 2430

Android应用与Java程序逆向工程工具包

JAR(Java Archive)包查看器是专门用来查看和分析Java归档文件的工具。它们能够帮助开发者或系统管理员查看JAR文件的内部结构,包括包含的类文件、资源文件以及其他相关的元数据。这些工具对于调试Java应用程序、分析库依赖关系以及进行安全审计等场景都极为有用。一个典型的JAR包查看器能够提供以下功能:列出JAR中的所有文件和目录。展示各个类文件的详细信息。提取单个文件或整个JAR包。查看JAR文件的清单(Manifest)文件。

weixin_36059856的博客 1576

概率论 知识图谱 + 实战案例解析

本文通过构建概率论知识图谱,系统梳理了从随机试验、概率、条件概率到随机变量与分布的核心概念及其内在联系。结合朴素贝叶斯分类器和蒙特卡洛模拟等实战案例,深入解析了条件概率、独立性及大数定律等理论如何应用于机器学习与实际问题求解,旨在帮助读者建立结构化思维,将理论有效转化为解决实际问题的能力。

weixin_29051193的博客 266

Android学习笔记——Android 签名机制详解

对 Android 签名机制所涉及的内容进行一个系统梳理

weixin_43301424的博客 5100

AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

weixin_39108752的博客 2994

apk为什么要签名发布

开发Android的人这么多,完全有可能大家把类名,包名都起成了一样的,这时候如何区分,签名就是起区分的作用的 由于开发商可能通过相同的packagename,来混淆替换已经安装的程序,签名可以保证包名相同,但是签名不同的包不被替换 apk如果使用同一个key签名,发布时另一个key签名的文件无法安装或者覆盖老的版本,这样可以防止你已经安装的应用被恶意的第三方替换或者覆盖 这样签名也是开发者的身份标识,当交易中抵赖等事情发生,签名可以防止抵赖的发生 原文连接: https://wenku.baidu.com

皮卡丘的博客 778

Android:Google三方库之Adjust集成详细步骤

Android为APP添加google adjust功能

学习就是我的个性 4473

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 263

apk文件结构解析一

Apk文件用WINRAR压缩软件解压缩后,如下图所示:主要是三个文件(lib、META-INF、res)和三个文件夹(AndroidManifest.xml、classes.dex、resources.arsc) 用工具展开可以看到如下所示的文件结构(文件夹中的内容可能不一致,这里我举得例子是一个JNI的Demo) 下面再详细介绍各个文件或者文件夹的作用或内容 META-INF文件夹

嘤其鸣矣,求其友声 3228

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1797

终极指南:3步完成XAPK到APK的无缝转换

还在为无法安装XAPK文件而困扰吗?面对那些无法在模拟器或老旧设备上运行的应用,你是否感到束手无策?今天我们将彻底解决这个技术难题。 ## 痛点场景:为什么XAPK格式如此令人头疼? XAPK文件作为一种安卓应用分包格式,虽然在分发效率上有所优势,但在实际使用中却带来了诸多不便: - **设备兼容性差**:Android 7.0以下系统直接拒绝安装 - **模拟器支持弱**:主流安卓模拟器无

gitblog_00078的博客 1138

JAVA:Spring Boot 集成 LibreOffice 实现文档在线转换服务

本文介绍了在企业级应用开发中使用LibreOffice实现文档格式转换的技术方案。通过对比分析商业库、纯Java方案和云服务API的优缺点,重点阐述了LibreOffice在格式兼容性、转换质量和零成本方面的优势。文章详细说明了环境准备步骤,包括Windows/Linux系统安装LibreOffice、解决中文乱码问题以及Docker部署方案。最后提供了Spring Boot项目的基本配置,包括Maven依赖和application.yml配置文件,为构建稳定高效的文档转换服务奠定基础。

木头 519

工业激光器核心参数详解与选型实战:从理论到产线落地(五)

本文深入解析了脉冲激光加工的三大核心参数——脉宽、重复频率和脉冲能量的协同作用机制。通过公式推导和产线案例,揭示了参数设置对加工良率的关键影响:1. 脉宽决定热影响区大小,缩短脉宽可显著提升加工精度;2. 重复频率影响加工速度和热积累效应,需平衡效率与质量;3. 脉冲能量决定材料去除量,过大易导致加工缺陷。文中以ABS塑料打标、模具清洗和微孔钻孔为例,展示了参数优化如何将良率从65%提升至99%,并提供了不同应用场景的参数选型表和调试技巧,强调峰值功率比平均功率更具决定性作用。

weixin_44520581的博客 2421

DoL-Lyra 整合包构建系统:从零到一的自动化打包完全指南

DoL-Lyra 是一个专为《Degrees of Lewdity》游戏设计的自动化构建系统,通过先进的 CI/CD 流程,为玩家提供多样化的 MOD 组合选择。本指南将详细介绍这个强大的构建系统,帮助您理解其工作原理并掌握使用方法。 ## 概述:什么是 DoL-Lyra 构建系统? DoL-Lyra 构建系统 v2.0 是一个完全重构的自动化构建工具,专为 CI/CD 环境设计,用于生成《D

gitblog_00225的博客 537

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

APK签名机制之——JAR签名机制详解

在《APK签名机制原理详解》一文中我们已经了解了APK签名和校验的基本过程,这一篇我们来分析JAR签名机制。JAR签名对对jar包进行签名的一种机制,由于jar包apk本质上都是zip包,所以可以应用到对apk的签名。本文从JAR签名结构、签名过程,再到签名校验的源码分析,全方面来分析Android中JAR签名及校验的机制。

zwjemperor的专栏 5160

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

APK签名机制之——V2签名机制详解

通过前一篇《Apk签名机制之——JAR签名机制详解》的分析我们知道,JAR签名需要对apk内所有文件进行hash校验,当资源较多时签名验证速度较慢。为了加快验证速度并加强完整性保证,Andorid在7.0引入一种全文件签名方案V2。下面来看V2方案的具体设计原理。

zwjemperor的专栏 5074

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android apk签名原理

一、什么是apk签名 签名是摘要与非对称密钥加密相相结合的产物,摘要就像内容的一个指纹信息,一旦内容被篡改,摘要就会改变,签名是摘要的加密结果,摘要改变,签名也会失效。Android APK签名也是这个道理,如果APK签名跟内容对应不起来,Android系统就认为APK内容被篡改了,从而拒绝安装,以保证系统的安全性。 应用程序的作者使用自己的私钥签名APK文件,并将签名与公钥一起发布到APK中,这个过程称之为签名。当应用程序被安装时,用发布的公钥去解析签名,并与文件的hash进行比对,这个过程叫验签。 二、

分享Android开发知识 8349

Android的APK两种签名

前几天在研究APK瘦身的相关知识,发现有个很有意思的知识点就是apk的签名 – APK Signature Scheme v2,虽然出来了一段时间,但是这方便真是没做太多的关注,趁着十一刚过的热乎劲撸起袖子干一波。

2201_75735270的博客 2224

Android APK签名

apk是安卓应用软件包,apk签名是软件包在安装的时候进行的安全性验证机制。 这种签名机制目的是为了确保Apk来源的真实性,以及Apk没有被第三方篡改。开发者通过对Apk进行签名:在Apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。 apk签名相当于程序的身份识别代码。 是Android application package英文缩写。 它是为了确保消息来源的真实性,同时确保消息不会被第三方篡改

我的博客 5696

Android安卓APK签名的机制原理及方法

执行命令后,jarsigner会使用指定的私钥对APK进行签名,并生成带有签名的APK文件。2. 签名信息的一致性:在应用的整个生命周期中,应始终使用相同的密钥库文件和私钥进行签名。Android Studio会使用提供的密钥库文件对APK进行签名,并生成带有签名的APK文件。1. 应用身份识别:每个APK文件都有一个唯一的签名,这个签名就像是应用的“身份证”,系统通过它来识别应用的身份。4. 权限授予:某些系统级权限的授予会基于APK的签名,比如共享UID的应用,需要相同的签名才能共享数据。

w708955424的博客 1584

Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名

Apk签名,每一个Android开发者都不陌生。它就是对我们的apk加了一个校验参数,防止apk被掉包。一开始做Android开发,就接触到了apk签名;后来在微信开放平台、高德地图等平台注册时,需要填写apk签名的md5值和sha256值;再后来做系统应用,接触到了系统签名;而后就想了解下apk的生成机制,学习了如何用命令行进行签名。 ...

jb_home的博客 1万+

Android APK签名机制分析

Android 签名介绍所有的Android应用程序要想在设备上安装,必须经过签名,不管是Debug版本还是Release版本。下面分别介绍这两种模式。 Debug模式 这个模式的签名过程由系统自动完成。因为采用默认的keystore,用户不需要特地输入密码等信息。签名所用工具Keytool和Jarsinger均由JDK提供,因此需要保证JAVA_HOME环境变量的正确性。 默认条件下,系统会存放

BridgeGeorge 1652
上一篇: Android安全
下一篇: Android 5.0 6.0 7.0 8.0 9.0新特性总结
杨殿生
博客等级 码龄10年 11粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值