码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Android 签名机制


    V1是内部文件单个签 但是增加apk文件目录下面随意增加文件并不会有影响,它只关心meta-info文件 mf汇总清单的各个文件sha256

    V2 整个APK文件,按文件进行hash 那么便不能随便在这里面增加文件了,增加了签名分块(不然签名信息存哪里)这里涉及一个文件概念  魔数!=名字=格式化名字=厂商命名的!=== oracle=.class=java-class

    google 就是利用zip --EFS附加节点,除了附加节点之外的字节数据全部拿来计算hash,存入附加数据,该分块包含多个“ID-值”对,所采用的封装方式有助于更轻松地在 APK 中找到该分块。APK 的 v2 签名会存储为一个“ID-值”对,其中 ID 为 0x7109871a。

    V3版本的签名 解决的问题是应用轮替证书问题,比如您之前申请的时效是5年 但是现在过期了,那么V3新证书就能解决,但是先决条件生成方式还得依赖老版本证书,签名数据部分中的 proof-of-rotation 属性包含一个单链表,其中每个节点都包含用于为之前版本的应用签名的签名证书

    老版本as还支持选择

    新版本的as 不支持选择 默认就是v2

    APK打包流程
    1.自己写代码 过程中 生成R资源清单表,由APPT完成,AIDL文件构成由AIDL工具完成

    2.写完之后全部编译成.class文件

    3.将所有.class文件打包成一个dex文件

    4.拷贝dex,清单,res,等相关数据文件进行zip压缩,生成apk文件

    5.对于apk文件进行工具签名

    V1签名流程

    总结:
    1. 计算每个文件的 SHA-1 摘要,进行 BASE64 编码后写入摘要文件,即 MANIFEST.MF 文件;

    2. 计算整个 MANIFEST.MF 文件的 SHA-1 摘要,进行 BASE64 编码后写入签名文件,即*.SF 文件;

    3.计算 MANIFEST.MF 文件中每一块摘要的 SHA-1 摘要,进行 BASE64 编码后写入 签名文件,即*.SF 文件;

    4.计算整个 *.SF 文件的数字签名(先摘要再私钥加密);

    6.将数字签名和 X.509 开发者数字证书(公钥)写入 *.RSA 文件;

  • 相关阅读:
    挑灯夜读——Redis实现分布式锁:含解决分布式问题思路
    LeetCode --- 1446. Consecutive Characters 解题报告
    密码学之椭圆曲线
    如何写好提示词?《Midjourney常用关键词大全》-附关键词文件
    【python】面向对象程序设计(基础篇)
    基于React俄罗斯方块h5小游戏源码响应式支持PC+手机
    广告电商模式玩法解析
    Onnxruntime之图像分类(c++)
    力扣刷题学习SQL篇——1-3 选择(从不订购的客户——使用not in)
    MiddleWare ❀ MySQL基础概述
  • 原文地址:https://blog.csdn.net/axuanqq/article/details/136391794
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号