你能强迫jarsigner给我们正斜线吗?

问题描述 投票:0回答:1

我有一个 Android APK 文件,我需要解压该文件,替换一个文件,使用

jarsigner
重新签名,然后
zipalign
生成有效的 APK。

应用程序安装时没有错误,但运行时无法在

/assets/
文件夹中找到它要查找的第一个内容。所需的文件肯定在APK中、在正确的位置等

“sub:main_activity_create(Jave line:375) java.io.FileNotFoundException:control.bal 中发生错误”

我看到的差异是原始

Manifest.MF
文件具有 正斜杠 (U+002F),但是当我在服务器上运行
jarsigner
时,它会创建一个带有
反斜杠
的新 manifest.mfU+005C)。有没有办法让 jarsigner 使用正斜杠?

代码是在 Azure 服务器上运行的 C# .NET。

原始

Manifest.MF
格式:

Manifest-Version: 1.0
Created-By: 1.8.0_112 (Oracle Corporation)

Name: assets/longblackbar.png
SHA1-Digest: 1Fq7U1Y/dLAVflFmTzLcC0tvKu4=

重新签名

Manifest.MF
格式

Manifest-Version: 1.0
Created-By: 1.7.0_51 (Oracle Corporation)

Name: assets\longblackbar.png
SHA1-Digest: vaky9S8cGhJIvh7a4LmmtWOpqAg=
android apk jarsigner
1个回答
1
投票

事实证明,C# ZipFileExtensions 方法是导致问题的原因,它创建了反斜杠。如果我将其替换为运行 7za.exe 作为进程,则使用正斜杠,此后一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.