安卓-apk系统签名篇
最佳答案 问答题库638位专家为你答疑解惑
时至今日,我在与一些安卓程序员的接触来看,有些人连系统签名是什么都不知道,这是我写这篇文章的理由.
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签名
99%的人还看了
相似问题
- 基于ASP.NET MVC技术的图书管理系统的设计与实现
- MySQL数据库:开源且强大的关系型数据库管理系统
- 最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能
- 基于springboot实现班级综合测评管理系统项目【项目源码+论文说明】
- 香港科技大学广州|机器人与自主系统学域博士招生宣讲会—同济大学专场!!!(暨全额奖学金政策)
- 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
- 基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。
- MES系统管理范围及标准
- 性能测试:系统架构性能优化思路
- django+drf+vue 简单系统搭建 (3) - 基于类的视图
猜你感兴趣
版权申明
本文"安卓-apk系统签名篇":http://eshow365.cn/6-19257-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 如何不引入第三个中间变量进行两数交换
- 下一篇: HarmonyOS开发环境搭建