大家好,欢迎再次与我交流,我是你们的全栈君。
在开发Android系统应用时,如果需要将当前应用设置为系统应用,我们需要进行两个步骤。首先,在对应的AndroidManifest.xml文件中,将“android:sharedUserId”设置为“android.uid.system”。示例如下:
```xml
package="com.example.localmediaplayerdemo" android:sharedUserId="android.uid.system">
```
其次,使用签名文件对应用进行签名。当应用安装到系统时,需要具有系统签名,否则无法安装,并会出现错误提示。
4/24 18:02:52: Launching 'mobile' on ×××Android Device. Installation did not succeed. The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE. List of apks: [0] '/**/**/APK name /mobile/build/outputs/apk/debug/mobile-debug.apk'. Installation failed due to: 'Failed to commit install session 1758990893 with command cmd package install-commit 1758990893. Error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Reconciliation failed...: Reconcile failed: Package com.example.apkname has no signatures that match those in shared user android.uid.system; ignoring!' Retry.
Android系统签名的生成
要生成系统签名,首先需要以下两个系统签名文件:platform.pk8和platform.x509.pem。这两个文件可以从Android源码中获取,具体路径为:build/target/product/security/。将上述两个文件放到同一个文件夹中,并将自己生成的签名文件也放置在这个文件夹下。从GitHub上下载工具keytool-importkeypair,然后执行以下命令即可生成系统签名文件。
```bash
./keytool-importkeypair -k SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias platform
```
请根据提供的内容完成内容重构,并保持段落结构:
其中,SignDemo.jks 是签名文件,123456 是 storePassword 和 keyPassword 的密码,platform 是别名。在配置文件中,有以下内容:
```
signingConfigs {
platform {
storeFile file("SignDemo.jks")
storePassword "123456"
keyAlias "platform"
keyPassword "123456"
}
}
```
上面命令的意思是将签名文件转换成系统签名文件。有时候会出现错误。
以下是重构后的内容:
错误解密密钥139637230543296时出错:错误代码0D0680A8,ASN.1编码例程中,asn1_check_tlen函数的标签不正确。具体错误出现在../crypto/asn1/tasn_dec.c文件的第1149行。
错误解密密钥139637230543296时出错:错误代码0D06C03A,ASN.1编码例程中,asn1_d2i_ex_primitive函数出现嵌套的ASN.1错误。具体错误出现在../crypto/asn1/tasn_dec.c文件的第713行。
错误解密密钥139637230543296时出错:错误代码0D08303A,ASN.1编码例程中,asn1_template_noexp_d2i函数出现嵌套的ASN.1错误。具体错误出现在../crypto/asn1/tasn_dec.c文件的第646行。无法加载类型为PKCS8_PRIV_KEY_INFO的字段version。
导入名为"platform"的密钥库时出错:SHA1指纹为57:3D:8B:63:41:84:95:29:43:CB:AD:67:7D:93:2D:03:83:D3:08:CE,但在尝试导入p12文件时出现问题。具体错误为java.io.FileNotFoundException,找不到指定的文件或目录/tmp/keytool-importkeypair.LHJB/p12。可能是因为platform.pk8文件或者platform.x509.pem文件有问题,可以从源码中复制一份解决。
根据提供的参考文档,我们可以对内容进行重构并保持段落结构。以下是重构后的内容:
```
1. 参考文档链接1:https://blog.csdn.net/qq_34744658/article/details/107949895
2. 参考文档链接2:https://www.freesion.com/article/242659750/
```
在这个重构后的内容中,我们将原文中的链接提取出来,分别放在两行中,每行一个链接。这样做的目的是为了方便读者直接点击链接查看相关资料,同时也使内容更加清晰易懂。