Android构建apk:控制MANIFEST.MF

2024-05-19

Android 构建 APK:

假设一个 apk 包含一个库 jar(例如 foo.jar),该库具有 META-INF/MANIFEST.MF,这对于它的运行很重要。但在APK中有一个包含签名数据的MANIFEST.MF,并且lib jar MANIFEST.MF丢失了。

APK
   META-INF/MANIFEST.MF

有没有办法向 MANIFEST.MF 添加更多属性或将 lib jar MANIFEST.MF 合并到其中?

UPDATE

解压apk后,在MANIFEST.MF中添加一些属性并重新打包apk,

packageDebug {
   doLast {
      // add attributes to MANIFEST.MF
   }
}

error:

Installation failed with message INSTALL_PARSE_FAILED_NO_CERTIFICATES: 
Failed to collect certificates from /data/app/vmdl1096113886.tmp/base.apk: 
META-INF/CERT.SF indicates /data/app/vmdl1096113886.tmp/base.apk is signed 
using APK Signature Scheme v2, but no such signature was found. Signature stripped?.

MANIFEST.MF 和 CERT.SF 都包含相同的摘要哈希。修改MANIFEST.MF后是否需要重新签名apk? MANIFEST.MF 本身没有摘要哈希。

方案 V2 签名应该在哪里?

有没有办法在apk签名之前修改apk? packageDebug 的 doLast 来得太晚了。


您应该查看packagingOptionsAndroid Gradle 插件的配置块。

它基本上是一个 DSL 对象,可以用类似的方式配置

android { 
    packagingOptions {
        excludes {
            pickfirsts = [/file1, ...]
            excludes = []
        }
    } 
}

看一下文档

通常有一个默认过滤器,可以排除第三方库的 META-INF 下的正则表达式(在上面的示例中,我们将其设置为空)。

你的用例是什么?因为我还没有遇到过需要查找 manifest.mf 的 jar,除了验证内容的完整性之外。

是的,如果您重新打包 apk,则需要使用密钥库对其进行签名才能成功安装它。您可以选择使用 v2/v1 中的一个(或针对较低 api 的应用程序同时使用这两种)签名方案进行签名apksigner来自 sdk 中的构建工具。

虽然没有必要这样做(如果你已经在你的buildscript) so if packagingOptions为你工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android构建apk:控制MANIFEST.MF 的相关文章

随机推荐

  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • @aspnet/signalr 与 @microsoft/signalr javascript 库

    aspnet signalr 与 microsoft signalr javascript 库有什么区别 两者似乎都对 DotNetCore SignalR 有效 两者似乎都很活跃 在一些教程中 我找到 aspnet signalr 在Do
  • Ubuntu 12.10 libgtk-3-0 缺少符号

    我正在运行 Ubuntu 12 10 不知何故我的 libgtk 3 0 搞砸了 当尝试运行许多不同的应用程序时 我收到如下错误 gedit symbol lookup error usr lib libgtk 3 so 0 undefin
  • SQL Server 中离线索引重建和在线索引重建有什么区别?

    重建索引时 有一个选项ONLINE OFF and ONLINE ON 我知道当ONLINE模式打开时 它会复制索引 切换新查询以利用它 然后重建原始索引 使用版本控制跟踪两者的更改 如果我错了 请纠正我 但是 SQL 在离线模式下会做什么
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • animateWithDuration 缺少完成块,WatchOS 2

    watchOS 2 的 animateWithDuration 函数中没有任何类型的完成块 我正在开发一款需要在动画完成后运行代码的游戏 有什么解决方法吗 也许使用键值观察 另一种方法是使用与动画长度相匹配的计时器 但由于显而易见的原因 这
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 如何记录进入 IIS 的 HTTP 请求

    我在我的开发机器上运行 IIS 5 我有一个 asp net 3 5 Web 服务在其上运行 我从同一服务器上运行的不同 Web 应用程序调用该服务 我的服务返回错误 500 内部服务器错误 我正在对其进行故障排除 我的请求是通过Syste
  • PHP LDAP 查询获取特定安全组的成员

    我正在努力让 LDAP 查询工作来为我提供安全组的成员 我们的活动目录结构设置为 DC domain DC co dc uk然后 我们有一个名为 公司用户 的 OU 其中有一个用于 IT 和标准的 OU 在这些中我们创建了用户 所以我被设置
  • 在 PHP 中接受带有小数点和千位分隔符的国际数字

    对于用户可以输入能量值来计算相应费用的在线计算器 我需要 PHP 脚本来接受各种用户输入 200 万又四分之一焦耳 的值可以输入为 2000000 25 默认表示法 2 000 000 25 带千位分隔符 2000000 25 逗号作为小数
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 有没有办法伪造同步 XHR 请求?

    我正在使用 Emscripten 系统将一堆 C 代码移植到 Javascript C 代码有很多调用fopen这是一个同步 IO 调用 在 Emscripten 中 我们使用对本地资源的 XHR 请求来模拟这一点however 在 Fir
  • 尝试使用 Firebug 查找 JavaScript 文件中的函数

    我试图找到这个函数调用 myFooBar 该函数在某些 HTML 中内联引用 但页面加载了大量 JavaScript 并且在每个文件中搜索该函数需要相当多的工作 如何使用 Firebug 找到此函数所在的 JavaScript 文件 打开脚
  • 为什么 Array.prototype.filter() 在 Magnolia JavaScript 模型中抛出错误?

    我正在尝试过滤 FreeMarker 列表Magnolia JavaScript 模型 https documentation magnolia cms com display DOCS61 How to work with JavaScr
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • 将预编译的车把模板与 Marionette 结合使用

    我正在使用带有 requirejs 的 Marionette 并且我还想使用预编译的车把模板 这是如何运作的 这是我当前的设置 需要 main js requirejs config baseUrl paths text vendor ja
  • 使用 Python 绘制 USGS 水文数据甘特图?

    我编译了一个数据帧 其中包含几个不同流计的 USGS 流数据 现在我想创建一个类似的甘特图this https stackoverflow com questions 31820578 how to plot stacked event d
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar