如何解决手动制作Android升级包签名出现CONSCRITT_OpenJDK_JNI错误

1.创建一个update目录,该目录包含自己想要升级或替换的内容
例如:
update/
update/system
update/system/app
update/system/app/doodle_jump.apk
update/META-INF
update/META-INF/com
update/META-INF/com/google
update/META-INF/com/google/android
update/META-INF/com/google/android/update-script
 
 
update/META-INF/com/google/android/update-binary


该目录包含doodle_jump游戏,升级后该apk将出现在手机的/system/app/目录下。
META-INF目录下update-binary这个文件是根据各个系统的源码编译出来的,所以这个文件一定要用系统的,这里我就不提供下载了。
META-INF目录下包含升级脚本,update-script脚本的内容如下:
show_progress 0.500000 0
copy_dir PACKAGE:system SYSTEM:
show_progress 0.100000 0
大家可以根据自己的升级内容添加相应的命令。


2.创建压缩包
在update/目录下运行:
 
 
$ zip -qry ../update.unsigned.zip ./

将在update/的父目录下产生update.unsigned.zip 压缩包


3.签名
$ java -Xmx512m -jar signapk.jar -w testkey.x509.pem testkey.pk8 update.unsigned.zip update.zip
 
 
Exception in thread "main" java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:25) at org.conscrypt.NativeCrypto.(NativeCrypto.java:54) at org.conscrypt.OpenSSLBIOInputStream.(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.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) at com.android.signapk.SignApk.readPublicKey(SignApk.java:182) at com.android.signapk.SignApk.main(SignApk.java:1087)
解决方法:
 
 
java -Xmx512m -Djava.library.path="out/host/linux-x86/lib64" \
    -jar out/host/linux-x86/framework/signapk.jar \
    -w build/target/product/security/platform.x509.pem \
    build/target/product/security/platform.pk8 \
    update.unsigned.zip update.zip
其中里面的路径可以自己定义,也可以把lib64,signapk.jar,platform.x509.pem,platform.pk8放在同一目录下;
signapk.jar,platform.x509.pem,platform.pk8与具体安卓系统相关;
-Xmx512m 这个是根据文件的大小去给值,我的比较小所以用512
命令如下:
$ java -Xmx512m -Djava.library.path="lib64" -jar signapk.jar -w testkey.x509.pem testkey.pk8 update.unsigned.zip update.zip
生成签过名的update.zip包,其中
4.将签过名的update.zip包放入手机sdcard根目录,
重启系统进入recovery模式,选择
apply update.zip,成功后重启手机

ok,现在手机上已经有doodle_jump游戏了,并且它无法被删除~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值