方法一:使用自己的Android签名工具给apk重新签名:
(1)该目录下有 media.pk8、media.x509.pem、platform.pk8、platform.x509.pem、shared.pk8、shared.x509.pem、testkey.pk8、testkey.x509.pem等签名文件,不同的签名文件,对应不同的权限。Android默认的签名文件为testkey.pk8、testkey.x509.pem。
(2) Android自带的签名工具为 signapk.jar, 可以在源码编译目录out中找到,具体路径为:out/host/linux-x86/framework/signapk.jar,签名指令如下:
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk (拷贝到同一目录执行签名)
8.0上验证需要额外的一些参数:
java -Xmx2048m -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 \
old.apk new.apk
方法二:通过Android源码编译成签名apk:
(1)编写Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := app LOCAL_SRC_FILES := app.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := .apk LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_CERTIFICATE := platform LOCAL_DEX_PREOPT := false LOCAL_PRIVILEGED_MODULE := true include $(BUILD_PREBUILT)
(2)将apk放入.mk同目录(命名为app.apk),配置好sdk编译环境后执行mm指令,签名apk生成在:out/target/product/xxxx/system/priv-app/app/app.apk 。
注:LOCAL_CERTIFICATE := platform 表示使用系统签名
LOCAL_DEX_PREOPT := false 不提前优化,无oat文件
方法三:Android studio配置签名工具:(1)生成本地key:
(2)下载 keytool-importkeypair 工具
./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]
如:
./keytool-importkeypair -k ./SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias SignDemo
将修改好的SignDemo.jks更新到android studio原来设置的目录,即可下一步生成签名APK。
生成路径:\xxxx\app\release
原文地址:https://www.cnblogs.com/blogs-of-lxl/p/9233285.html