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.mzph.cn/web/22473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:基于多个 kNN 字段对文档进行评分

作者:来自 Elastic Madhusudhan Konda 通过具有多个 kNN 字段的最接近的文档对文档进行评分 Elasticsearch 不仅仅是一个词法(文本)搜索引擎。 Elasticsearch 是多功能搜索引擎,除了传统的文本匹配之外,还支持 k 最近…

【C++】优先级队列介绍与模拟实现

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

Hadoop3:MapReduce之InputFormat数据输入过程整体概览(0)

一、MapReduce中数据流向 二、MapTask并行度 1、原理概览 数据块:Block是HDFS物理上把数据分成一块一块。数据块是HDFS存储数据单位。 数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。数据切片是MapRed…

哇噻,Zabbix7.0 LTS正式发布!功能又进化了!

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

全平台自定义小程序源码系统 一个后台控制7端 自主设计属于你的小程序 前后端带完整的安装代码包以及搭建教程

系统概述 在当今数字化时代,小程序以其轻量级、跨平台、即用即走的特点,成为企业、个人及开发者们追捧的热门工具。为了满足不同用户的需求,小编给大家分享一款全平台自定义小程序源码系统。该系统通过一套强大的后台管理系统,实…

游泳预约报名小程序开发源码案例模板之前端功能介绍

越来越多游泳馆使用线上预约报名管理系统,以此来提升游泳馆预约的便捷性以及管理的效率。馆客多小程序是一款实用、便捷的线上运动服务平台,可以让用户轻松预订游泳馆场地并享受自助线上服务,同时也减轻了游泳馆运营压力,提高游泳…

XLA - 加速线性代数

文章目录 一、关于 XLAXLA目标XLA 运作方式 二、Community沟通渠道其他资源存储库 一、关于 XLA XLA : Accelerated Linear Algebra github : https://github.com/openxla/xlaOpenXLA Community : https://github.com/openxla/communityXLA - TensorFlow : https://tensorflo…

Flink SQL查询语法部分详解(提供需求、数据练习复现)

一、Hints 动态表选择:可以在查询表的时候动态修改表的参数配置 1、读取kafka的数据建表 CREATE TABLE students (id STRING,name STRING,age INT,sex STRING,clazz STRING ) WITH (connector kafka,topic students, -- 指定topicproperties.bootstrap.servers …

MongoDB UPDATE使用$setOnInsert为新插入数据设置默认值

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第60篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。 使用Mongodb UPDATE数据更新字段,当文档不存在,通过指定{upsert: true},可…

linux配置IP、子网掩码、网关

linux虚拟机配置IP、子网掩码、网关 本方法适用于 Ubuntu 18.04 之后的版本。 例1: 配置信息: IP:10.100.100.23 子网掩码:255.255.255.240 网关:10.100.100.56 1、打开网络配置文件 01-network-manager-all.yaml sudo vi /etc/netplan/01-network-…

Linux 记一次spin_lock死锁优化经验

From 程序员秘书 死锁是很常见的一种内核故障。 最简单也是最常见的,就是如果一个task在已经持有某个锁的情况下,再次尝试获取同一个锁,就会形成死锁局面。发生死锁的场景有很多,常见的情况可能有,可能是在同一个tas…

高效扫码点餐:简餐茶饮外卖新体验

前言 在快节奏的现代生活中,高效便捷的扫码点餐系统正逐渐成为简餐茶饮行业的新宠。这一系统不仅提升了顾客的点餐体验,还优化了门店的运营效率,特别是基于总部多门店的连锁模式,更是将这一优势发挥得淋漓尽致。 一、这款扫码点餐…

如何通过PHP语言实现远程控制多路照明

如何通过PHP语言实现远程控制多路照明呢? 本文描述了使用PHP语言调用HTTP接口,实现控制多路照明,通过多路控制器,可独立远程控制多路照明。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂…

软理复习范围

1.直觉主义逻辑常采用三值逻辑来处理命题的真值,包括以下三个真值: 真(True):表示命题是确定为真的。假(False):表示命题是确定为假的。未知(Unknown)&#…

Prism 入门02,区域介绍

一.区域概念和使用方式 什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心功能之一,其主要作用是降低应用程序和模块之间的耦合度 。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以…

el-tabel名称排序问题

el-tabel排序 最终实现功能如下: 排序限制为: 文件夹>普通文件 数字(0->9)->大写字母(A->Z)->小写字母(a->z)->中文拼音(a->z) 正序…

程序性能优化

索引 没加索引(where条件字段、order by字段,常用字段添加索引)索引没生效选错索引SQL优化 SQL数据库性能优化-CSDN博客远程调用 并行调用数据异构重复调用 循环查数据库死循环无限递归异步处理 线程池mq服务器(全称消息队列服务器…

[原创]C++ 11的thread_local线程局部变量与Lambda表达式配合使用, 却引发致命的, 难以发现的冲突.

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

探索Python的itertools模块:高效迭代的瑞士军刀

探索Python的itertools模块:高效迭代的瑞士军刀 Python的itertools模块是一个强大的工具箱,它提供了一系列的迭代器工具,用于创建复杂的迭代逻辑。这个模块的函数返回的都是迭代器,这意味着它们是懒加载的,只有在需要…

Unity开发Cosmos使用BNG Framework获取按键信息

Unity开发Cosmos使用BNG Framework获取按键信息 1、新建一个脚本&#xff0c;复制下面代码 using BNG;[Header("Input")]//[Tooltip("The key(s) to use to toggle locomotion type")]public List<ControllerBinding> locomotionToggleInput new …