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

<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/[email protected]'
development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
development/tools/make_key shared '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'
development/tools/make_key media '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/[email protected]'

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

将第二步编译生成的out/host/linux-x86/framework/SignApk.jar放入当前目录下。

命令java -jar SignApk.jar platform.x509.pem platform.pk8 input.apk output.apk

不单可以对apk文件进行重签名,也可以对所有的zip文件进行重签名,包括ROM文件

更多相关文章

  1. 谷歌开发工具Android(安卓)Studio安装使用图文教程
  2. 学习Android(安卓)Studio开发工具之Activity3(框架3)
  3. Dalvik 和 ART
  4. android logger的使用
  5. Android进程通信之Messenger&AIDL使用详解
  6. Android配置文件,所有权限
  7. Android执行打开文件(PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,V
  8. 初级学习android的相关准备工作和学习的流程
  9. android中的三种xml解析方法---sax解析,pull解析,dom

随机推荐

  1. android 自定义文字跑马灯 支持拖拽,按住
  2. Android下打开/关闭wifi 及 状态(5个)的
  3. Android(安卓)fragment 与Activity 互相
  4. Android(安卓)Touch事件传递机制解析
  5. Android(安卓)OpenGl展示视频内容
  6. Android布局管理
  7. Android开发高级进阶02
  8. Android之获取手机相关信息
  9. Android(安卓)Recyclerview轻松实现分割
  10. reactNative 集成支付宝支付