一、签名

1.方法一

https://www.likecs.com/show-204368736.html

上面作者讲的是安装的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 条评论

发表回复

您的电子邮箱地址不会被公开。