首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓安装包签名_笔记签名验证

使用 APK 签名方案 v2 进行签名时,会在 APK 文件中插入一个 APK签名分块,该分块位于“ZIP 中央目录”部分之前并紧邻该部分。...在 APK 文件中,“APK 签名分块”位于“ZIP 中央目录”(位于文件末尾)之前并紧邻该部分。 该分块包含多个“ID-值”对,所采用的封装方式有助于更轻松地在 APK 中找到该分块。...APK 时,首先要通过以下方法找到“ZIP 中央目录”的起始位置:在文件末尾找到“ZIP 中央目录结尾”记录,然后从该记录中读取“中央目录”的起始偏移量。...通过 magic 值,可以快速确定“中央目录”前方可能是“APK 签名分块”。然后,通过 size of block 值,可以高效地找到该分块在文件中的起始位置。...如果未找到APK Signing Block,则执行原来的签名验证机制,也是验证成功则继续进行安装,如果失败了则终止安装。

1.3K30

apktool的下载,安装,反编译和重新打包

两个文件放在同一目录,后将该目录添加到您的环境变量系统PATH变量中 Linux 写个sh脚本放在同一目录下 #!...或 build apktool b 解压后的项目目录 -o 新apk的名字 // 重新打包生成的 apk 需要签名才能安装 3.拓展反编译的配置 #-api, --api-level 指定生成...Ps:我试了下,格式确实更接近原生,但是我重新打包也是成功了(打包成功,但并未签名安装)。 #--no-assets 不处理和拷贝属于 unknown 的资源文件。...:反编译根目录下的以 classes 开头,并以 .dex 结尾的dex文件,不仅限于0-9 #-p, --frame-path 指定存储和加载framework的目录 #-r, --...4.拓展重新打包配置 #-a, --aapt 指定使用的aapt,当指定目录未找到aapt时,会使用apktool自带的aapt进行处理。

7.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vue学习笔记4-项目开发规范及插件

    Vue 学习笔记 4-项目开发规范及插件 一、安装插件 开发必备: vscode-icons:编辑器图标插件; Vue Language Features (Volar):在功能上 volar 和 vetur...陌生单词 列表; GitLens:多人协作开发时,可快速查找 git 提交记录。...Git History:提交记录(Alt + H 查看,安装了 GitLens 可以不用安装); Doxygen Documentation:生成代码文件头和注释; 二、基本配置 2.1 Yarn Yarn...从程序包依赖项中清除并删除不必要的文件。 2.1.1 配置 yarn autoclean --init 执行玩命令之后,Yarn 就会自动在根目录下创建一个.yarnclean文件。...= false [Makefile] indent_style = tab 在项目根目录看有没有 .vscode 文件夹,若没有,就新建。

    29640

    Android V1及V2签名签名原理简析

    image.png 可以看到,如果只有V2签名,那么APK包内容几乎是没有改动的,META_INF中不会有新增文件,按Google官方文档:在使用v2签名方案进行签名时,会在APK文件中插入一个APK签名分块...、中央目录结尾信息等,对比到zip文件格式如下: ?...,主要在V1SchemeSigner中处理,其中包括创建META-INFO文件夹下的一些签名文件,更新中央目录、更新中央目录结尾等,流程不复杂,不在赘述,简单流程就是: ?...,逻辑比较清晰,直接对V1签名过的APK进行分块摘要,再集合签名,V2签名不会改变之前V1签名后的任何信息,签名后,在中央目录前添加V2签名块,并更新中央目录结尾信息,因为V2签名后,中央目录的偏移会再次改变...总结 V1签名靠META_INFO文件夹下的签名文件 V2签名依靠中央目录前的V2签名快,ZIP的目录结构不会改变,当然结尾偏移要改。

    2.7K40

    Golang(go语言)开发环境配置

    VSCode开发环境配置 目录 VSCode开发环境配置 先到VSCode官网去下载适合自己系统的VSCode安装软件 演示在WIndows下 安装使用 演示在Linux(Ubuntu/centos)...2)SDK安装目录建议:windows一般我安装在d:,安装时,基本上是傻瓜式安装,解压就可以使用 3)解压后,我们会看到d:/go目录,这个是sdk 如何测试我们的go的sdk是否安装成功:...看一个现象: 在命令窗口中输入go,出现错误提示: II....原因分析 错误原因: 当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的个名为path的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。...配置完后,需要重新注销用户,配置才会生效 插件的安装 vscode-go 插件下载:在扩展中输入 go,点击安装 到目前为止已经可以使用 go 在 vscode 中编程了,可以开始

    90110

    APK 签名:v1 v2 v3 v4

    同时,v1 方案对 APK 内部被保护的原始文件,是单独进行计算数据摘要的,所以在验证时,需要先解压再验证,导致安装时会花费更多的时间,消耗更多的内存。...使用 APK 签名方案 v2 进行签名时,会在 APK 文件中插入一个 APK 签名分块,该分块位于「ZIP 中央目录」部分之前并紧邻该部分。...可以看到在 v2 已签名的 APK 中,包含了 4 个部分: ZIP 条目的内容 APK 签名分块(APK Signing Block) ZIP 中央目录 ZIP 中央目录结尾 在验证期间,v2+ 方案会将...在这个新块中,会记录我们之前的签名信息以及新的签名信息,以密钥转轮的方案,来做签名的替换和升级。这意味着,只要旧签名证书在手,我们就可以通过它在新的 APK 文件中,更改签名。...在 V2 插入的签名块(Apk Signature Block V2)中,又添加了一个新快(Attr 块),它使用链表存储了所有的签名信息,验证时就像 CA 证书的证明过程。

    2.2K30

    Android 新一代多渠道打包神器

    V1校验流程 在安装APK时,Android系统会校验签名,检查APK是否被篡改。...综上所述,任何对APK文件的修改,在安装时都会失败,除非对APK重新签名。但是相同包名,不同签名的APK也是不能同时安装的。...经过尝试,这种情况是可以编译通过的,并且在Android 7.0之上也可以正确安装和运行。但是7.0之下,因为不认识V2,又没有V1签名,所以会报没有签名的错误。...但是在写入签名块后,修改了EOCD中的中央目录偏移量,那么在进行V2签名校验时,理论上在“数据摘要校验”这步应该会校验失败啊!但是为什么V2签名可以校验通过那?...其实也很简单,原来Android系统在校验APK的数据摘要时,首先会把EOCD的中央目录偏移量替换成签名块的偏移量,然后再计算数据摘要。而签名块的偏移量不就是v2签名之前的中央目录偏移量嘛!!!

    6.4K20

    ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

    1.3、安装 Git   为代码添加版本控制是必须的,它可以详细的记录你的每一次操作,以及当你的某次作死导致的环境出错时,你可以很快的恢复环境。经常作死的表示,这个巨需要。...Git 作为一个分布式的版本控制系统,与 SVN 这种集中式的版本控制系统不同,我们的本地仓库不仅包含了我们的代码,还包含了每个人对代码的操作历史 log,而 SVN 的历史操作记录只存在于中央仓库中。...如果使用 Git 进行版本控制的话,因为我们本地的仓库是一个完整的包含历史操作记录的仓库,我们就可以毫无差别的重新搭建一个中央仓库。...如果你有使用过 Vue CLI 之前的版本,使用大写字母创建项目时是会报错的,但是在 Vue CLI 3 版本中没有出现这种问题。 ?   ...另外,虽然我们在创建项目时并没有勾选初始化 Git 仓储,但是 Vue CLI 还是创建了一个 gitignore 文件,如果你和我一样,是将前后端项目放到一个仓储的话,可以把这个文件里的内容复制到项目根目录中的

    3.7K20

    Android 新一代多渠道打包神器

    V1校验流程 在安装APK时,Android系统会校验签名,检查APK是否被篡改。...综上所述,任何对APK文件的修改,在安装时都会失败,除非对APK重新签名。但是相同包名,不同签名的APK也是不能同时安装的。...经过尝试,这种情况是可以编译通过的,并且在Android 7.0之上也可以正确安装和运行。但是7.0之下,因为不认识V2,又没有V1签名,所以会报没有签名的错误。...但是在写入签名块后,修改了EOCD中的中央目录偏移量,那么在进行V2签名校验时,理论上在“数据摘要校验”这步应该会校验失败啊!但是为什么V2签名可以校验通过那?...其实也很简单,原来Android系统在校验APK的数据摘要时,首先会把EOCD的中央目录偏移量替换成签名块的偏移量,然后再计算数据摘要。而签名块的偏移量不就是v2签名之前的中央目录偏移量嘛!!!

    1.2K20

    Android新一代多渠道打包神器

    V1校验流程 在安装APK时,Android系统会校验签名,检查APK是否被篡改。...综上所述,任何对APK文件的修改,在安装时都会失败,除非对APK重新签名。但是相同包名,不同签名的APK也是不能同时安装的。...综上所述,任何对APK的修改,在安装时都会失败,除非对APK重新签名。但是相同包名,不同签名的APK也是不能同时安装的。 到这里,V2签名已经介绍完了。...但是在写入签名块后,修改了EOCD中的中央目录偏移量,那么在进行V2签名校验时,理论上在“数据摘要校验”这步应该会校验失败啊!但是为什么V2签名可以校验通过那?...其实也很简单,原来Android系统在校验APK的数据摘要时,首先会把EOCD的中央目录偏移量替换成签名块的偏移量,然后再计算数据摘要。而签名块的偏移量不就是v2签名之前的中央目录偏移量嘛!!!

    1.5K90

    1.Linux 命令行快捷键介绍

    Linux 下的命令行有助于初 学者了解系统的运行情况和计算机的各种设备,如中央处理器、内存、磁盘驱动、键盘、鼠标 及其他输入/输出设备和用户文件都是在Linux系统管理命令下运行的。...2 Linux 命令行介绍在 Linux 中,命令行命令有大小写的区分在 Linux 操作系统中,命令行处于核心的地位。...:# Ls -bash: Ls: command not found 系统将给出命令错误的信息“命令未找到”。...1.命令行的历史记录 可以通过重复按向上方向键↑遍历近来在控制台下输入的命令,按向下方向键↓可以向前 遍历,与 Shift 键联用可以遍历以往在该控制台中的输出。...例如可以在命令行下重复按向上方 向键↑,直到出现近来在控制台下输入的命令 ls 为止,然后按 Enter 键执行这一命令。

    9910

    Android Automotive Framework调试技巧

    签名的组成 Android源码中的系统签名统一存放路径:build/target/product/security .pem类型文件:在android对apk签名的时候,.pem这种文件就是一个X...生成三方APP使用的签名文件 在三方App应用中,因为不用经过Android系统编译,所以如果没有签名文件的情况下用到特殊权限则无法安装使用。...= 38, //下载过程操作时缺失hash错误 kDownloadMetadataSignatureMissingError = 39, //下载过程元数据签名缺失错误 kOmahaUpdateDeferredForBackoff...清理系统 sudo apt-get autoclean:将已经删除了的软件包的.deb安装文件从硬盘中删除掉 sudo apt-get clean:删除包缓存中的所有包,也会把你已安装的软件包的安装包也删除掉...思维导图工具 工具推荐: Try markmap在线制作使用markdown 百度脑图在线制作:可以导入markdown导出png图片 vscode插件: mindmap(文件以km结尾)(参考https

    5.2K11

    .NETC# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。

    在解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。。 其原因是所解压的文件并非 zip 文件。...---- 异常 在解压 Zip 文件时出现异常: 1 2 3 4 5 6 7 System.IO.InvalidDataException: 找不到中央目录结尾记录。...在 System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory() 在 System.IO.Compression.ZipArchive.Init...(String sourceArchiveFileName, String destinationDirectoryName) 原因 如果一个文件并非 zip 文件,那么在解压的时候就会出现此异常。...本文会经常更新,请阅读原文: https://blog.walterlv.com/post/zip-extracting-with-invalid-data-exception.html ,以避免陈旧错误知识的误导

    1.2K40

    Vue.js学习笔记

    在执行 npm run dev 命令的时候出现8080端口被占用 # 根据端口号,查找被占用端口的进程 id netstat -nao|findstr "8080" # 结束进程,2228 为进程 id...执行npm run build命令构建Vue.js项目后,在浏览器中打开生成的HTML文件,网站资源文件的路径错误 进入项目目录下的config/index.js文件中的build对象下的assetsPublicPath...select作为组件的name属性值(name: "select")时在console中产生的警告,不能将标签名设为组件的name属性 代码简写 :clone=”cloneData”表示给draggable.../assets/report/white_report.gif')" alt="" > vue 与 vue-template-compiler 的版本不一致 当运行项目时遇到如下错误表示 vue 与...": "open" } 在代码中禁用单个 eslint 语法检查规则 /* eslint-disable no-unused-vars */ import db from '.

    76320

    鸿蒙Flutter实战:11-使用 Flutter SDK 3.22.0

    鸿蒙化的 SDK 需要配置安装,我们稍后进入项目,执行安装。...──────┼─────────┼─────────────────┼──────────────┼──────────────┼────────┼───────┤同时,配置命令执行完成后,将会在项目目录中创建...签名1.在运行项目前,先对项目进行签名,否则在运行过程中会出现这样的错误请通过DevEco Studio打开ohos工程后配置调试签名(File -> Project Structure -> Signing...3.签名成功后,文件 ohos/build-profile.json5 会自动更新,里面的字段 signingConfigs 出现相应的签名配置信息。...运行 运行 Flutter 项目,在项目根目录使用 fvm flutter run 或者在 IDE 中点击运行按钮参考资料FVM鸿蒙Flutter实战:01-搭建开发环境鸿蒙 Flutter 3.22.0

    43310

    鸿蒙Flutter实战:12-使用模拟器开发调试

    签名 使用 DevEco 打开上面项目中的 ohos 目录,也就是我们的鸿蒙项目目录 打开 File -> Project Structure..., 点击 Siging Configs, 勾选 Automatically...运动 Flutter 项目 Vscode中右下角应当出现模拟器的设备,行如 127.0.0.1:5555(ohos-arm64), 如果没有出现参考注意事项中的说明 2 操作。...中模拟器设备不显示 2.1 尝试使用 Deveco 打开项目的 ohos 目录(即鸿蒙项目文件),等待初始化分析成功 2.2 尝试重启 VSCode 3.使用 fvm 时,项目目录下 flutter...3.1 尝试在 vscode 的命令行中运行 fvm use custom_3.22.0, 待命令创建 .vscode/setting.json 文件并在其中增加类似这样的配置 { "dart.flutterSdkPath...": ".fvm/versions/custom_3.22.0" } 项目根目录中出现 .fvm/version/custom_3.22.0 这样的目录文件,项目根目录出现 .fvmrc 文件,其内容类似如下

    18610

    「万物生长」一个APK从诞生到活跃在Android手机上

    v1签名过程很简单,一共分为了三个部分: 对非目录文件以及过滤文件进行摘要,存储在MANIFEST.MF文件中。...使用APK签名方案v2进行签名时,会在APK文件中插入一个APK签名分块,该分块位于“ZIP中央目录”部分之前并紧邻该部分。...在“APK签名分块”内,v2签名和签名者身份信息会存储在APK签名方案v2分块中。...APK 签名方案 v2 验证 找到“APK 签名分块”并验证以下内容: “APK 签名分块”的两个大小字段包含相同的值。 “ZIP 中央目录结尾”紧跟在“ZIP 中央目录”记录后面。...“ZIP 中央目录结尾”之后没有任何数据。 找到“APK 签名分块”中的第一个“APK 签名方案 v2 分块”。如果 v2 分块存在,则继续执行第 3 步。否则,回退至使用 v1 方案验证 APK。

    1K20

    Git服务器搭建

    5、Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以。   6、SVN必须先Update才能Commit,忘记合并时就会出现一些错误,git还是比较少的出现这种情况。   ...8、 版本库(repository):SVN只能有一个指定中央版本库。当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。而 Git可以有无限个版本库。...10、提交(Commit)在SVN,当你提交你的完成品时,它将直接记录到中央版本库。当你发现你的完成品存在严重问题时,你已经无法阻止事情的发生了。如果网路中断,你根本没办法提交!...Linux中的公钥在每个用户的home目录下(/home/用户/.ssh),没有则使用命令进行创建:ssh-keygen -t rsa ?   ...Windowns中的公钥创建:   使用git,打开Git Bash。   1. 安装git,从程序目录打开 "Git Bash"    2.

    2.6K30

    一个listener.ora配置细节的问题

    今天做练习的时候,发现一个问题,可能是很小的细节问题,但确实稍微折腾了一下,记录于此,方便以后查阅。 问题现象: 1. 配置listener.ora静态监听。 ? 2. 使用静态监听创建EM。...如上所示,ORACLE_HOME的路径中结尾没有“/”,而我的版本是有这个符号, ? 难道真是这问题?...这个问题的根源就是ORACLE_HOME的路径结尾多了一个“/”,想必Oracle的解析程序在得到ORACLE_HOME的value值后,是做了直接匹配,并没有对结尾的“/”进行转换,他要找"dbhome...按常理讲,结尾的“/”不会是目录名称,因此这块其实容错性可以做得更好些。而且listener.ora的官方文档中除了示例中体现了这点,并没有其他介绍(至少我未找到),想必他认为这是一个常识。 2....一个小小的“/”,虽然是细节问题,但出现问题时的错误提示,依然可以为我们指明一些方向,足以进一步体会到Oracle的精湛。还未入道,还需努力。

    1.2K40
    领券