文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android系统签名jks文件

2023-08-16 15:08

关注

Android Studio普通应用-》系统应用

在android framework开发过程中,通常使用系统应用在验证某些功能,(系统功能权限大,可以通过反射获取hide接口,便于功能调试)。
一般做法,是将AndroidStudio打包的apk,使用系统签名,编译到系统,使其获取到system权限,验证功能。 但是这个过程比较复杂,流程繁琐,耗时。不建议采用。

目前推荐,使用系统签名对jks进行签名,然后直接使用AdnroidStudio install即可。现大致流程介绍如下

Android Studio生成jks签名文件

jks(java keystore)

字面意思可以理解为java的密钥库,是一个用来存放密钥和证书的仓库。而keytool就是密钥和证书的管理工具,它把key(密钥)和certificate(证书)存放在一个叫keystore的文件中。

打开android studio软件,点击上方Build - Generate Signed Bundle / APK。选择APK选项,执行下一步
在这里插入图片描述

Key store path: 存饭jks签名文件的位置,一般与app同级目录,创建key文件夹,然后将jks文件保存到此处
Key store password : jks文件的密码
Key alias : jks签名文件的别名
Key password :与store password密码一致
在这里插入图片描述

需要记住别名和密码,后面使用系统签名时,会用到。

Android系统对jks签名

cd android/build/target/product/security 将系统签名文件,platform.pk8和platform.x509.pem copy到AndroidStudio key文件目录下,下载keytool-importkeypair签名工具(github可下载)
在这里插入图片描述

然后cd 到key命令下,按照如下指令进行jks签名
// ./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8[私钥] -cert platform.x509.pem[公钥证书] -alias [jks的别名]//./keytool-importkeypair -k $name -p android -pk8 $keypath/platform.pk8 -cert $keypath/platform.x509.pem -alias key0alias: key0  密码为123456例如:./keytool-importkeypair -k key0 -p 123456 -pk8 $keypath/platform.pk8 -cert $keypath/platform.x509.pem -alias key0

此时会使用系统签名文件,对原来生成的jks文件进行签名,此时该签名文件就具备系统权限。

AndroidStudio引用系统签名的文件

重新生成jks系统签名文件之后,需要在app工程目录下的build.gradle中进行引用,按照如下配置

配置签名文件
signingConfigs {        release {            keyAlias 'key0'            keyPassword '123456'            storeFile file('../key/test.jks')            storePassword '123456'        }}
引用签名文件,必须要在release和debug中加入signingConfig signingConfigs.release,才会生效
buildTypes {        release {            minifyEnabled false            //zipAlignEnabled true            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'            signingConfig signingConfigs.release        }        debug {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'            signingConfig signingConfigs.release        }    }

此时该应用已经具备系统权限。如果想获取更大的系统权限,需要在Androidmanifest.xml中新增userid, 配置如下
android:sharedUserId=“android.uid.system”>

来源地址:https://blog.csdn.net/weixin_45080805/article/details/129118381

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯