Android系统定制APP开发_如何对应用进行系统签名

embedded/2025/1/22 7:00:52/

前言

当项目开发需要使用系统级别权限或frame层某些api时,普通应用是无法使用的,需要在AndroidManifest中配置sharedUserId:
AndroidManifest.xml中的android:sharedUserId=“android.uid.system”,代表的意思是和系统相同的uid,可以拥有修改系统时间,文件操作等权限。

1.制作Android Studio可以使用的jks文件

1.1 下载keytool-importkeypair
链接: https://download.csdn.net/download/u010345983/87453083

1.2 将keytool-importkeypair文件拷贝到platform签名所在目录
Android原生的签名会区分user和userdebug,配置目录分别如下:
(1)user的签名配置在:build\target\product\security\release
(2)userdebug的签名配置在:build\target\product\security

签名文件在Android源码的位置如下

build/target/product/security/platform.pk8
build/target/product/security/platform.x509.pem

其中,.pk8文件为私钥,.x509.pem文件为公钥

1.3 执行命令生成jks文件

./keytool-importkeypair -k longzhiye.jks -p pwd123 -pk8 platform.pk8 -cert platform.x509.pem -alias longzhiye

-k:生成的jks密钥文件
-p:密码
-alias:密钥别名

gradle_29">2.将上述生成的jks文件填到AndroidStudio的build.gradle文件中

在工程主模块的 \app\build.gradle文件中添加 signingConfigs 签名配置信息

android {defaultConfig {...}signingConfigs {release {storeFile file("./longzhiye.jks")keyAlias 'longzhiye'keyPassword 'pwd123'storePassword 'pwd123'v2SigningEnabled true}debug {storeFile file("./longzhiye.jks")keyAlias 'longzhiye'keyPassword 'pwd123'storePassword 'pwd123'v2SigningEnabled true}}buildTypes {...}}

构建脚本配置完成后,使用Android Studio执行指定的构建时,就会按照我们写好的脚本信息生成对应签名的apk。

3.密钥安全性

为了保障密钥的安全, 不建议将密钥文件上传至代码管理平台,也不建议将密钥文件的别名、密码直接以明文的方式写到build.gradle中。


http://www.ppmy.cn/embedded/155993.html

相关文章

WebSocket知识点笔记(一)

WebSocket ​ WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务端之间的消息传递更加高效,允许服务器主动向客户端推送数据。 一.WebSocket全双工通信 WebSocket提供了真正的双向通信,客户端和服务端可以同时发送和接收消息 …

计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

被动扫描和主动扫描的区别

在网络安全和漏洞检测中,被动扫描和主动扫描是两种常见的技术,它们在工作方式和应用场景上有显著的区别。 被动扫描 被动扫描是一种在目标无法察觉的情况下进行的信息收集方法。它通过监听网络流量、代理等方式获取数据,而不主动与目标系统…

Python保留字与标识符及常变量

1、保留字 保留字;严格区分大小写 不可以把保留字作为变量、函数、类、模块和其他对象的名称来使用 import keyword print(keyword.kwlist) # 输出所有的保留字 print(len(keyword.kwlist)) # 获取保留字的个数 true 真 # True 真 #属于保留字,会…

微服务知识——4大主流微服务架构方案

文章目录 1、微服务聚合模式2、微服务共享模式3、微服务代理模式4、微服务异步消息模式 微服务是大型架构的必经之路,也是大厂重点考察对象,下面我就重点详解4大主流微服务架构方案。 1、微服务聚合模式 微服务聚合设计模式,解决了如何从多个…

谈谈对分布式事务Seata的理解

最近一个微服务项目中有用到Seata,联调的时候发现了一些数据不回滚的问题,特此记录一下: 1.Seata介绍: Seata 是一个开源的分布式事务解决方案,致力于在微服务架构下提供高性能和易用的分布式事务服务。它由阿里巴巴集团发起并贡…

Unity环境搭建

在Unity中开发环境搭建的步骤如下: 1. 安装Unity 访问 Unity官网,并下载并安装Unity Hub。Unity Hub是一个用于管理Unity安装版本、项目和组件的工具。安装Unity Hub后,打开Unity Hub,登录您的Unity账号或创建一个新账号。在Uni…

PyTorch框架——基于深度学习YOLOv11神经网络路面坑洞检测系统

基于深度学习YOLOv11神经网络路面坑洞检测系统,其能识别路面坑洞,见如下 第一步:YOLOv11介绍 YOLOv11是由Ultralytics公司开发的新一代目标检测算法,它在之前YOLO版本的基础上进行了显著的架构和训练方法改进。以下是YOLOv11的一…