安卓-apk系统签名篇

news2024/9/21 0:25:53

时至今日,我在与一些安卓程序员的接触来看,有些人连系统签名是什么都不知道,这是我写这篇文章的理由.

1.什么是系统签名

apk的签名,简单说开发者可以通过签名 对应用进行标识和更新。包名在一个设备上是唯一的,这样可以避免被相同包名应用随意覆盖安装。这是一个非常重要的安全功能。
而系统签名文件,也是对系统中应用进行签名,编译应用是可以指定签名类型。比如说你要做成系统应用与使用一些系统接口的话就需要使用系统签名.

2.Android系统中的主要签名文件

media.pk8,media.x509.pem;platform.pk8,platform.x509.pem;releasekey.pk8,releasekey.x509.pem;shared.pk8,shared.x509.pem;testkey.pk8,testkey.x509.pem。

3.Android系统中的签名文件的路径

build/target/product/security/目录下。

4.(.pk8和.x509.pem的区别)

.pk8就是私钥文件,用于对apk进行签名。这个私钥需要保密保存,不能公开。
.x509.pem是证书文件,相当于公匙。这个可以公开,主要用于验证某个apk是否由相应的私钥签名。

5.系统不同签名文件的区别

  • sharedUserId

每个apk或文件,系统都会分配属于自己的统一的用户ID(UID),创建沙箱保证其他应用的影响或影响其他应用。如:一般应用只能访问自己包名下的文件(/data/data/pkgname),不能反问其他包名下的,其他应用也访问不了自己包名下的文件。
sharedUserId,拥有同一user id的应用 之间就可以共享数据库和文件,相互访问。这些应用可以运行在同一进程,也可以运行不同进程。

  • sharedUserId与签名文件

只有拥有相同sharedUserId标签的,且拥有相同签名的 应用才能分配相同的用户ID,实现数据共享。如果仅仅拥有相同sharedUserId标签,是无法确保安全的,也很容易被非法利用。

6.如何签名

 (1). 先给apk的配置文件打上系统用户ID:

 android:sharedUserId="android.uid.system"

 (2).生成apk,根据系统给的签名文件进行签名

platform.pk8与platform.x509.pem是系统里面的签名文件,signapk.jar是google提供的签名工具:签名命令如下

java -jar signapk.jar platform.x509.pem platform.pk8 testing-debug.apk testing-debug_realse.apk

testing-debug.apk :是你打上系统ID所生成的apk

testing-debug_realse.apk:是你需要签名完成以后的apk名字,相当于复制签名成另一个apk

(3).这时候你就可以在对应的系统安装这个apk了,如果你只是打了  android:sharedUserId="android.uid.system"没有去签名,是无法安装的,如果没有打 android:sharedUserId="android.uid.system"这个的话,就算签了名,也无法安装

7.高版本签名问题

在高版本的时候我发现签名以后也安装不上,后来查百度说需要apk文件四字节对齐,不然就报错,相较于普通的系统签名,四字节对齐多了两个文件,这里我说的高版本是

targetSdk 33 大于30的apk

签名步骤以及命令:

1.先对齐:zipalign -p -f -v 4 app-release.apk app-release1.apk
2.然后签名:java -jar apksigner.jar sign --key platform.pk8 --cert platform.x509.pem app-release1.apk 

 

对齐成功

再对对齐以后的apk签名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1080728.html

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

相关文章

计算机视觉(Computer Vision, CV)是什么?

什么是计算机视觉 近年来,计算机视觉 (Computer Vision,简称CV) 不断普及,已成为人工智能 (AI) 增长最快的领域之一。计算机视觉致力于使计算机能够识别和理解图像和视频中的物体和人。 计算机视觉应用程序使用来自传感设备、人工智能、机器…

电脑图片jpeg怎么转jpg格式?jpeg和jpg的转换方法

很多平台对上传的图片格式都有严格的要求,当我们遇到图片格式不对的时候,就需要改图片格式了,下面以jpeg转jpg(在线图片格式转换器(jpg、png、gif、webp、bmp、tiff)-压缩图)为例子,…

项目创建 Vue3 + Ts + vite + pinia

vite官网 项目初始化 准备安装工作(按步骤创建) npm init vuelatest创建完成后再次安装对应插件 然后百度配置main.ts里面引入 npm i pinia --save //安装pinia npm i vue-router --save //安装router npm i axios --save //安装axios //安装sass或less npm add -D scss npm…

顺序表的应用——(通讯录)

目录 前提须知: 通讯录的结构: 通讯录的建立: 顺序表的重命名: 顺序表数据类型的更改: 使用通讯录结构体新名字,进行类型重命名的问题: 头文件的添加: 通讯录的初始化和销毁&a…

【Linux】NTP时间服务器Chrony配置详解

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文…

CV计算机视觉每日开源代码Paper with code速览-2023.10.11

点击CV51,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构:Transformer】EViT: An Eagle Vision Transformer with Bi-Fovea Self-Attention 论文地址:https://arxiv.or…

Mysql分组查询每组最新的一条数据,查询用户的最新的一条记录

有订单表和用户表,如何获取用户的最新的一条订单记录? 订单表 CREATE TABLE orders (id int(11) NOT NULL AUTO_INCREMENT,uid int(10) NOT NULL DEFAULT 0,created_at datetime(0) NOT NULL,PRIMARY KEY (id) USING BTREE ) ENGINE InnoDB ;INSERT …

Python大数据之Python进阶(七)线程的注意点

线程的注意点 学习目标 能够说出线程的注意点 1. 线程的注意点介绍 线程之间执行是无序的主线程会等待所有的子线程执行结束再结束线程之间共享全局变量线程之间共享全局变量数据出现错误问题 2. 线程之间执行是无序的 import threading import timedef task():time.sleep…

17.(开发工具篇Gitlab)如何在Gitlab配置ssh key

前言: Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置 一、git 配置 (1)打开 git 命令窗口 (2)配置用户名(填自己的姓名) git config --global user.name “chenbc” (3)配置用户邮箱(填自己的邮箱) git config …

有没有普通人也能赚钱的副业?挖漏洞兼职!

如何开展副业?网络安全月入过万! ​ 随着大数据和人工智能的兴起。各行业对信息安全和网络安全服务的需求量呈指数级的暴增。 这不最近,一个做运维的朋友在学网络安全。他告诉我,他靠挖漏洞赚钱上个月月入过万了,好香啊…

Unity 设置Inspect上问号的跳转链接

设置Inspect上问号的跳转链接 只需要在Class上添加特性:HelpURL即可!

《进化优化》第1章 绪论

文章目录 1.1 术语1.2 又一本关于进化算法的书1.3 先修课程1.4 家庭作业1.5 符号1.6 本书的大纲 1.1 术语 一些作者称进化算法为进化计算。另一些人称进化算法为基于种群的优化。一些作者称进化算法为计算机智能或计算智能。专家系统模仿演绎推理,进化算法则模仿归…

视频如何截取高清gif?高清gif一键制作

Gif动图表情包作为当下最受欢迎的一种图片格式,一般是在网上或是与友人的聊天中获取的。其实,制作gif动图的方法也很简单,一段视频就能够从中截取到很多gif动图。只需要使用gif动态图片制作(https://www.gif.cn/)工具&…

腾讯云上创建 对象存储cos

1. 登录腾讯云, 找到对象存储cos 2. 创建存储桶 3. 获取4个配置参数 桶名称 / 地域secretId / secretKey

若依以及flowbale达梦国产化数据库改造_全网最细

Springboot与flowable—达梦国产化改造 文章目录 Springboot与flowable—达梦国产化改造1、相关软件下载1.1 下载可视化工具 2 、源代码运行2.1 导入sql2.2 打开项目,导入pom依赖2.3 修改配置2.3.1 修改数据库配置2.3.2 修改redis配置2.3.3 运行后端2.3.4 运行前端 …

【SpringMVC篇】探索请求映射路径,Get请求与Post请求

🎊专栏【SpringMVC】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺请求映射路径⭐报错原因⭐解决方法 🌺…

OpenCV实现答题卡自动打分!

目录 1,主要原理以及函数介绍 全部代码,以 2 , 实现过程 3,结果展示 1,主要原理以及函数介绍 ap argparse.ArgumentParser() 创建一个ArgumentParser对象,并将其赋值给变量ap。这个对象可以接受我们的脚…

基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】

基于springboot实现教师人事档案管理系统演示 摘要 教师人事档案管理系统理工作是一种繁琐的,务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展,人类进入信息时代,社会的竞争越来越激烈,教师人事档案就越显示出其不可或…

JAVA开发者全家桶工具

一、前言 作为JAVA开发者,编码的时间其实只占平时工作的时间不到30%。作为项目管理和团队协作,平时处理的杂事其实很多,当然也是开发工作的一部分,比如写文档,任务管理,代码review、程序部署等等。这一节介…

墨西哥专线正清和双清包税有什么区别?

在国际贸易中,物流运输是一个至关重要的环节。对于从中国发往墨西哥的商品,物流公司通常会提供不同的运输方式和服务,如正清和双清包税等。那么,这两种方式有何不同呢? 首先,我们来看什么是“正清”和“双清”。 “正…