Android : apk系统签名的多种方法

  方法一:使用自己的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

猜你喜欢

转载自www.cnblogs.com/blogs-of-lxl/p/9233285.html