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)
上一篇 2022年6月21日 上午8:36
下一篇 2022年6月21日 上午8:36


相关推荐

  • Pycharm如何设置自定义背景颜色

    Pycharm如何设置自定义背景颜色Pycharm 可以通过设置主题来设定背景颜色 但主题的背景颜色也仅仅局限特定的几种 通过如下的方式可以自定义背景颜色 File Settings Editor General 右侧上方的框框 Text Defaulttext 选右侧的 Background 就可以设置背景色了 图中的灰色背景 RGB 是 192 192 192

    2026年3月27日
    2
  • 算法导论 25.3 Johnson算法

    算法导论 25.3 Johnson算法一 Johnson 算法的思想 nbsp nbsp nbsp nbsp nbsp nbsp 如果图 G 中所有的边权重均为非负值 通过对每个结点进行一次 Dijkstra 算法来找到所有结点对之间的最短路径 如果图 G 中有负值的边但没有权重为负值的环路 就计算出一组新的非负权重值 并按同样的方法计算 二 新权重的确定 nbsp nbsp nbsp nbsp nbsp nbsp 我们定义新权重 w u v w u v h u h v 满足两个性质 一是对于所有结点对 u v 路径 p 是使用原权

    2026年3月18日
    2
  • java8 list.sort 排序

    java8 list.sort 排序//按照List中对象的id属性升序list.sort(Comparator.comparing(User::getId))//按照List中对象的id属性降序list.sort(Comparator.comparing(User::getId).reversed());//多个条件升序list.sort(Comparator.comparing(User::getId).thenComparing(User::getDeId));//id升序,deId降序

    2022年8月12日
    7
  • js如何获取计算机当前时间,js获取当前系统时间实例代码

    js如何获取计算机当前时间,js获取当前系统时间实例代码在javascript中使用date日期函数,取得当前系统时间的方法:varmydate=newdate();mydate.getyear();//获取当前年份(2位)mydate.getfullyear();//获取完整的年份(4位,1970-????)mydate.getmonth();//获取当前月份(0-11,0代表1月)mydate.getdate();…

    2022年10月18日
    4
  • redis cluster原理详解_redis cluster原理

    redis cluster原理详解_redis cluster原理本文转载自:https://zhuanlan.zhihu.com/p/69800024RedisCluster是Redis官方提供的集群解决方案。由于业务的飞速增长,单机模式总会遇到内存、性能等各种瓶颈,这个时候我们总会喊,上集群啊。就跟我家热得快炸了,你总喊开空调呀一样。的确,上集群可以解决大多数问题,但是在使用集群的过程中,不可避免会遇到这样那样的问题,这个时候怎么办呢,各种百度各种群里去问吗?NO,作为开发人员,在享受第三方提供的方便前,有必要去了解其基本的工作机制,这样才能在遇到问题时快速定位,

    2022年10月14日
    6
  • mvnw的使用

    mvnw的使用1 什么是 mvnwmvnw 是 MavenWrapper 的缩写 我们安装 Maven 时 默认系统所有项目都会使用全局安装的这个 Maven 版本 但对于某些项目来说 它可能必须使用某个特定的 Maven 版本 这时就可以使用 MavenWrapper 它可以负责给这个特定的项目安装指定版本的 Maven 而其他项目不受影响 简单地说 MavenWrapper 就是给一个项目提供一个独立的 指定版本的 Maven 给它使用 作用 自动寻找系统中的 maven 环境变量 如果没有找到它就会自动下载 maven 到一个默认

    2026年3月16日
    2

发表回复

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

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