Android进阶-apk系统签名

Android进阶-apk系统签名一、来源有时候我们开发一个apk需要系统权限,于是我们便会在apk的AndroidManifest.xml中添加如下属性:android:sharedUserId="android.uid.system"这个时候我们去安装apk,会提示:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE这个时候就是需要给apk一个系统签名。…

大家好,又见面了,我是你们的朋友全栈君。

一、来源

有时候我们开发一个apk需要系统权限,于是我们便会在apk的AndroidManifest.xml中添加如下属性:

这里写图片描述

android:sharedUserId="android.uid.system"

这个时候我们去安装apk,会提示:
这里写图片描述

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

这个时候就是需要给apk一个系统签名。

二、如何给apk进行系统签名

1.找到源码目录签名文件和签名工具

签名文件
build\target\product\security

这里写图片描述

签名工具
out/host/linux-x86/framework/signapk.jar

这里写图片描述

2.将签名文件和签名工具、签名apk放置同一目录,定位到该目录,使用如下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 unsign.apk signed.apk

signed.apk就是生成已经拥有系统签名的apk


除了直接使用signapk.jar签名外,还可以将签名文件生成keystore文件,然后给apk进行签名。
定位到签名文件和apk目录,然后输入如下命令:
1.

openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt

openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey

这里会输入密码和确认密码,密码是android
Enter Export Password:
Verifying – Enter Export Password:

keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey

最后和eclipse或者as签名文件路径关联即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152001.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Laravel 修改默认日志文件名称和位置

    Laravel 修改默认日志文件名称和位置

    2021年10月23日
    41
  • C#UDP编程

    C#UDP编程一.UDP协议UDP(UserDatagramProtocol)协议就是“用户数据报协议”,它是一种无连接的协议,无连接主要是和TCP协议相比较的。我们知道当利用TCP协议传送数据的时候,首先必须建立连接(也就是所谓的握手)才可以传输数据。而当计算机利用UDP协议进行数据传输的时候,发送方只需要知道对方的IP地址和端口号就可以发送数据,而并不需要进行连接。由于UDP协议并不需要进行确定

    2022年9月8日
    0
  • Activiti教程(五)activiti5初始化表和讲解表

    Activiti教程(五)activiti5初始化表和讲解表声明:表详细数据转载自 https://blog.csdn.net/hj7jay/article/details/51302829该博主对activiti数据模型做了很深的讲解一.框架结构二.初始化activit5框架的表执行测试类里的createTables方法packagecom.lpinfo.activiti.test;importorg.activiti.e…

    2022年7月21日
    16
  • Java输入输出流详解

    Java输入输出流详解通过数据流、序列化和文件系统提供系统输入和输出。Java把这些不同来源和目标的数据都统一抽象为数据流。Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。1.1、Java流

    2022年5月26日
    51
  • Idea激活码最新教程2020.2.1版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2020.2.1版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2020 2 1 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2020 2 1 成功激活

    2025年5月23日
    0
  • 联想服务器R630 收集日志

    联想服务器R630 收集日志

    2021年8月30日
    105

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号