我已经替换了TPK文件()中的映像,但它不会安装。
在TPK文件中,有两个签名文件signature1.xml和Auther-signature.xml。
在他们两人中,他们都有:
<Reference URI="shared/res/ACL-splash.png">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>wgvWtVSJns8mCgUPfBZ/2ZTBfKqR02zW0MD4tA3cIBE=</DigestValue>
</Reference>它链接到有关sha256值的信息,但当我找到已编辑文件的sha256值时,会得到以下内容:
Sha1:53f3002da277c92d86e1c356ded39ce3dd91512b
463e0102f54ee7370b84f5b1570ac0d77791244d5b2b06f023e0e4831a23bfe4:Sha256
它们都不是合适的长度。
此外,原始文件与所列内容不同:
Sha1:4c3e051a5ef68c63a45b38aba63e1038d318bc3
c20bd6b554899ecf260a050f7c167fd994c17caa91d36cd6d0c0f8b40ddc2011:sha256
当您在tizen电话上安装修改后的文件时,其内容如下:
__return_cb req_id[29370002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[error] val[79] error message: Invalid signature. Signed with wrong key, changed signature file or changed package file
__return_cb req_id[29370002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[end] val[fail]
processing result : SIGNATURE_INVALID_HASH_SIGNATURE [79] failed
spend time for pkgcmd is [6309]ms(忽略pkgid部分)
但是,当您将等号添加到您输入的散列的末尾时,它会说:
__return_cb req_id[29870002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[error] val[32]
__return_cb req_id[29870002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[end] val[fail]
processing result : CERTIFICATE_INVALID [32] failed
spend time for pkgcmd is [6251]ms发布于 2018-04-04 23:49:43
要退出tizen (.tpk),您需要使用tizen。
重新签包裹。
Windows:
tizen package -t tpk -s MyProfile -- C:\Users\workspace\basic\Debug\org.tizen.basic-1.0.0-i386.tpk
Author certificate: C:\tizen-sdk-data\keystore\author\mycert.p12
Distributor1 certificate : C:\tizen-sdk\tools\certificate-generator\certificates\distributor\tizen-distributor-signer.p12
Package (C:\Users\workspace\basic\Debug\org.tizen.basic-1.0.0-i386.tpk) is created successfully.Ubuntu和macOS:
$ tizen package -t tpk -s MyProfile -- ~/workspace/basic/Debug/org.tizen.basic-1.0.0-i386.tpk
Author certificate: ~/tizen-sdk-data/keystore/author/mycert.p12
Distributor1 certificate : ~/tizen-sdk/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12
Package (~/workspace/basic/Debug/org.tizen.basic-1.0.0-i386.tpk) is created successfully.有关更多细节,请参阅下面的tizen指南。
https://developer.tizen.org/development/tizen-studio/native-tools/cli
发布于 2018-04-03 19:00:49
示例值为十六进制,而XML包含base64。
例如,您的SHA-256值是64十六进制数字,所以32字节-这对于SHA-256来说是有意义的,也就是256位。
XML中的DigestValue是44个字符,包括一个填充字符--这正是我所期望的32个字节,其中每3个字节需要4个字符。
例如,下面是一些C#代码,用于获取base64哈希并将其转换为(破折号分隔的)十六进制:
using System;
using System.Text;
class Test
{
static void Main()
{
byte[] hash = Convert.FromBase64String("wgvWtVSJns8mCgUPfBZ/2ZTBfKqR02zW0MD4tA3cIBE=");
Console.WriteLine(BitConverter.ToString(hash));
}
}产出如下:
C2-0B-D6-B5-54-89-9E-CF-26-0A-05-0F-7C-16-7F-D9-94-C1-7C-AA-91-D3-6C-D6-D0-C0-F8-B4-0D-DC-20-11..。这与您为原始文件计算的散列相匹配,因此至少您知道您正在正确地计算它。
我对Tizen本身一无所知,但听起来您可能需要更新该XML文件以包含SHA-256哈希的base64 .或者如果您删除了它,工具是否会为您替换它?
https://stackoverflow.com/questions/49637116
复制相似问题