目录
一、签名
1.方法一
https://www.likecs.com/show-204368736.html
- 解决 no conscrypt_openjdk_jni in java.library.path 方法
http://www.atmcu.com/2203.html
除了上面的情况,还有一种原因是jdk版本不一致的问题。https://blog.csdn.net/qq_41057885/article/details/118091025
上面作者讲的是安装的JDK位数和操作系统位数不一致,我的错误和作者一样,但是原因不一样:我的编译libconscrypt_openjdk_jni.so使用的java版本与我/etc/profile配置版本不一致,将/etc/profile中的jdk版本配置成和编译编译libconscrypt_openjdk_jni.so使用的java版本一致即可。
2.方法二
原生源码编译出signapk.jar包
1)
我的产品名称是aosp_cf_x86_64_phone
通过下面的命令
prebuilts/build-tools/linux-x86/bin/ninja -j8 signapk -f out/combined-aosp_cf_x86_64_phone.ninja
编译出的signapk.jar文件位于
out/host/linux-x86/framework
2)
把下载好的文件下载到windows上执行仍然会报错:
root@ubuntu:/home/xinyi/code/temp/platform# java -jar signapk.jar platform.x509.pem platform.pk8 debugV2.3.3.apk debugV2.3.3_signed.apk
Error: Invalid or corrupt jarfile signapk.jar
root@ubuntu:/home/xinyi/code/temp/platform# file signapk.jar
signapk.jar: data
root@ubuntu:/home/xinyi/code/temp/platform#
3.方法三 (亲测可用)
Android SDK的 build-tools 目录apksigner.bat文件,也可用来签名。
apksigner sign \
--key platform.pk8 \
--cert platform.x509.pem \
--in debugV2.3.3.apk \
--out debugV2.3.3_signed.apk
实测可以签成功。
二、验证签名是否成功
检查进程身份
adb shell ps -A | grep -E "(你的应用包名|system|uid)"
但是应用要加上 android:sharedUserId="android.uid.system" 才会显示身份为system。
0 条评论