zoukankan      html  css  js  c++  java
  • [Android]使用platform密钥来给apk文件签名的命令

    1.使用platform密钥对apk进行签名

    1.1.进入<Android_Source_Path>/build/target/product/security,找到【platform.pk8】和【platform.x509.pem】系统密钥。
    1.2.进入<Android_Source_Path>/build/tools/signapk找到SignApk.java,执行javac编译成SignApk.class
    1.3.运行命令java com.android.signapk.SignApk platform.x509.pem platform.pk8 input.apk output.apk

    至此,完毕。

    2. 对1的补充:

    <Android_Source_Path>/build/target/product/security下有多对密钥,具体例如以下:

    The following commands were used to generate the test key pairs:

      development/tools/make_key testkey  '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
      development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
      development/tools/make_key shared   '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
      development/tools/make_key media    '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'

    The following standard test keys are currently included:

    testkey -- a generic key for packages that do not otherwise specify a key.
    platform -- a test key for packages that are part of the core platform.
    shared -- a test key for things that are shared in the home/contacts process.
    media -- a test key for packages that are part of the media/download system.

    These test keys are used strictly in development, and should never be assumed
    to convey any sort of validity.  When $BUILD_SECURE=true, the code should not
    honor these keys in any context.


    signing using the openssl commandline (for boot/system images)
    --------------------------------------------------------------

    1. convert pk8 format key to pem format
       % openssl pkcs8 -inform DER -nocrypt -in testkey.pk8 -out testkey.pem

    2. create a signature using the pem format key
       % openssl dgst -binary -sha1 -sign testkey.pem FILE > FILE.sig

    extracting public keys for embedding
    ------------------------------------
    it's a Java tool
    but it generates C code
    take a look at commands/recovery/Android.mk
    you'll see it running $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar

    3.对3的补充:

    在执行第三步的命令前,请在你当前的工作文件夹下新建例如以下结构的文件夹:com.android.signapk,然后将第二步编译生成的SignApk放入该文件夹下。或者也能够将SignApk.java的package声明删除后再执行javac编译。

    命令java com.android.signapk.SignApk platform.x509.pem platform.pk8 input.apk output.apk

    不单能够对apk文件进行重签名,也能够对全部的zip文件进行重签名,包含ROM文件。

    本文内容归CSDN博客博主Sodino 全部

    转载请注明出处: http://blog.csdn.net/sodino/archive/2010/11/17/6016706.aspx

  • 相关阅读:
    关于gc日志中Desired Survivor的疑问和对象晋升老年代的小结
    Tomcat 中部署 web 应用 ---- Dubbo 服务消费者 Web 应用 war 包的部署
    10种常见的排序算法
    让我们来谈谈JDBC
    单例的设计模式
    使用putty与SSHSecureShellClient登录远程服务器完成与本地Git项目的同步
    安装 Dubbo 管理控制台
    邮件工具类
    Hadoop系列教程<一>---Hadoop是什么呢?
    setTimeout闭包常见问题
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3763171.html
Copyright © 2011-2022 走看看