当前位置: 首页 > news >正文

android apk签名


android apk签名

命令:
java -jar  signapk.jar  platform.x509.pem  platform.pk8 **.apk   ***.apk

note:

apk密钥为: platform.pk8和platform.x509.pem   路径: build\target\product\security
apk签名工具:signApk.jar 路径:/out/host/linux-x86/framework/signApk.jar

源码编译规则LOCAL_CERTIFICATE


Apk的Android.mk文件中会指定
LOCAL_CERTIFICATE := testkey # 普通APK,默认情况下使用
LOCAL_CERTIFICATE := platform # 该APK完成一些系统的核心功能,这种方式编译出来的APK所在进程的UID为system
LOCAL_CERTIFICATE := shared # 该APK是media/download系统中的一环
LOCAL_CERTIFICATE := media # 该APK是media/download系统testkey。

对应的,除了在Android.mk指定上述的值,还需要在APK源码的AndroidManifest.xml文件的manifest节点里面申明权限:
android:sharedUserId="android.uid.system"
android:sharedUserId="android.uid.shared"
android:sharedUserId="android.media"

系统签名存放位置:

build/make/target/product/security/

生成新的签名key文件

使用development/tools/make_key 工具生成新的签名文件,不能输入密码。

# ./development/tools/make_key releasekey '/C=US/ST=Michigan/L=Michigan/O=MicroTouch/OU=MicroTouch/CN=Mircotouch/emailAddress=max.chen@xxx.com'

demo: 生成 networkstack 相关key

#./development/tools/make_key networkstack '/C=CN/ST=ChinaGD/L=ChinaSZH/O=xxx/OU=xxx/CN=xxx/emailAddress=xxx@xxx.com'

查看key信息:

keytool -printcert -file xxx.x509.pem

demo:
# keytool -printcert -file networkstack.x509.pem 

Owner: EMAILADDRESS=xxx@xxx.com, CN=xxx, OU=xxx, O=xxx, L=ChinaSZH, ST=ChinaGD, C=CN
Issuer: EMAILADDRESS=xxx@xxx.com, CN=xxx, OU=xxx, O=xxx, L=ChinaSZH, ST=ChinaGD, C=CN
Serial number: 712b6db3638c67c018ef43f538f4bd6eb823be1d
Valid from: Wed Nov 29 11:04:42 CST 2023 until: Sun Apr 16 11:04:42 CST 2051
Certificate fingerprints:
     SHA1: 97:69:44:14:5C:8E:A7:91:DB:6D:0F:F5:D7:C4:4E:08:1C:A8:72:F7
     SHA256: D5:40:09:26:5B:54:E0:D0:58:CE:0B:1A:21:61:16:45:D9:B2:61:4E:C0:BA:32:4C:26:0F:DC:84:E3:27:BB:78
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions: 

#1: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 6A DE 03 D0 76 57 F2 85   5C EC E2 76 31 25 BD 7E  j...vW..\..v1%..
0010: 23 FA B0 1C                                        #...
]
]

#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 6A DE 03 D0 76 57 F2 85   5C EC E2 76 31 25 BD 7E  j...vW..\..v1%..
0010: 23 FA B0 1C                                        #...
]
]

制作AS上使用的platform签名jks文件

命令:

1.将源码路径下 build\target\product\security\platform.pk8 和 platform.x509.pem 复制出来放在同一目录下

2.执行命令 后生成 platform.pem

openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.pem -nocrypt

3.行命令生成   platform.pk12

openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.pk12 -name 别名

这里需要输入两次密码 

 4.执行命令 ,生成keystore

keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore debug.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass 123456 -alias androiddebugkey

keytool -importkeystore -deststorepass 上面输入的密码 -destkeystore platform.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass 上面输入的密码

 5.执行命令生成 jks

keytool -importkeystore -deststorepass hyydev -destkeystore hyysign.jks -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass hyydev

转自: Android 如何获取系统签名 并使用系统签名_keytool-importkeypair -k sign.jks -p 123456 -pk8 p-CSDN博客


原文链接:https://blog.csdn.net/xiaowang_lj/article/details/124213051

http://www.lryc.cn/news/363784.html

相关文章:

  • flutter 解析json另类封装方式 List<bean>,哈哈哈
  • 哈希表(Hash table)
  • 【c语言】自定义类型-结构体
  • 2-链表-71-环形链表 II-LeetCode142
  • 【UnityShader入门精要学习笔记】第十七章 表面着色器
  • Python社会经济 | 怀特的异方差一致估计量
  • 《被讨厌的勇气》笔记
  • Python爬虫协程批量下载图片
  • Flask Web开发基础:数据库与ORM实战
  • pidstat -d 1分析磁盘吞吐量
  • 期望20K,2年golang深圳某互联网小公司一面
  • #02 安装指南:如何配置Stable Diffusion环境
  • 拼多多笔试
  • Golang | Leetcode Golang题解之第119题杨辉三角II
  • Flutter 中的 SliverIgnorePointer 小部件:全面指南
  • 比较两台计算机上的LabVIEW、工具包及驱动程序的一致性
  • 参考——温湿度传感器DHT11驱动_STM32
  • 架构每日一学 14:架构师如何进行可行性探索?
  • 多线程知识-13
  • vue3+cli-service配置代理,跨域请求
  • git介绍、安装、配置
  • 打开flutter调试
  • 【前端 - Vue】Vuex基础入门,创建仓库的详细步骤
  • #01 Stable Diffusion基础入门:了解AI图像生成
  • Knife4j使用
  • 一文读懂银行承兑汇票:从申请到使用全攻略
  • 唯众智联网(AIoT)应用开发教学实训解决方案
  • 归纳跨域几种解决方案
  • LeetCode刷题第3题(C#)
  • 了解一下Ubuntu Linux