使用源码对apk进行签名
java -jar signapk.jar platform.x509.pem platform.pk8 unsignxxx.apk signedxxx.apk
查看签名信息
jarsigner -verify -verbose -certs *.apk
签名相关包的路径
./prebuilts/sdk/tools/lib/signapk.jar
./build/make/target/product/security/platform.x509.pem
./build/make/target/product/security/platform.pk8
./out/.path/jarsigner
当我对apk进行签名时,发生了以下的异常
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.conscrypt.OpenSSLBIOInputStream.<init>(OpenSSLBIOInputStream.java:34)
at org.conscrypt.OpenSSLX509Certificate.fromX509PemInputStream(OpenSSLX509Certificate.java:119)
at org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509PemInputStream(OpenSSLX509CertificateFactory.java:220)
at org.conscrypt.OpenSSLX509CertificateFactory$1.fromX509PemInputStream(OpenSSLX509CertificateFactory.java:216)
at org.conscrypt.OpenSSLX509CertificateFactory$Parser.generateItem(OpenSSLX509CertificateFactory.java:94)
at org.conscrypt.OpenSSLX509CertificateFactory.engineGenerateCertificate(OpenSSLX509CertificateFactory.java:272)
at java.base/java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:355)
at com.android.signapk.SignApk.readPublicKey(SignApk.java:184)
at com.android.signapk.SignApk.main(SignApk.java:1007)
Caused by: java.lang.IllegalArgumentException: Failed to load any of the given libraries: [conscrypt_openjdk_jni-linux-x86_64, conscrypt_openjdk_jni-linux-x86_64-fedora, conscrypt_openjdk_jni]
at org.conscrypt.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:160)
at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:49)
at org.conscrypt.NativeCrypto.<clinit>(NativeCrypto.java:53)
... 9 more
此时针对以上的报错,只需要执行以下命令就能解决此问题
cp ./prebuilts/sdk/tools/linux/lib64/libconscrypt_openjdk_jni.so ./build/target/prodect/security/