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


相关推荐

  • 深入浅出MFC-读书笔记

    深入浅出MFC-读书笔记不想去成为一个伟大的程序员,只想成为一个具有良好习惯的优秀程序员。第一章:Win32基本程序观念我也赞同书中所讲,应用MFC框架开发Windows程序需要深入到底层,如果只停留在表面应用知其然而不知其所以然,这样会限制你更好的应用MFC框架。Win32程序开发流程下图说明一个32位WindowsSDK程序的开发流程:Windows程序分为…

    2022年6月16日
    35
  • 离散 单射 满射 双射

    离散 单射 满射 双射单射双射满射阐述一下什么是单射,双射,满射1.单射:对于每一个不同的x都有不同的y,即x1!=x2–>y1!+y2条件:|X|<=|Y|2.满射:对于每一个y都有x与之对应条件:|Y|<=|X|3.双射:既是单射又是满射条件:|X|=|Y|代码实现通过map函数建立映射1.单射:map<int,int>BuildInjection(vector<int>src,vector<int>dst){map&l

    2022年6月10日
    36
  • .net 4.0 ValidateRequest=”false” 无效「建议收藏」

    .net 4.0 ValidateRequest=”false” 无效「建议收藏」
    当你在安装了.NETFramework4.0以上版本后,当你的应用程序以.NETFramework4.0为框架版本,你的任意服务器请求,都将被进行服务器请求验证(ValidationRequest),这不仅包括ASP.NET,同时也包括WebServices等各种HTTP请求,不仅仅针对aspx页面,也针对HTTPHandler,HTTPModule等,因为这个验证(Valify)的过程,将会发生在BeginRequest事件之前。
       问题的解决方案就是在全局级别(

    2022年6月6日
    42
  • MySQL删除表的三种方式[通俗易懂]

    MySQL删除表的三种方式

    2022年2月15日
    52
  • java中的引用是指什么

    java中的引用是指一个已存在的对象的别名,引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。

    2022年1月17日
    38
  • Java实习生面试题整理

    Java实习生面试题整理一 数据类型包装类型八个基本类型 boolean 1 byte 8 char 16 short 16 int 32 float 32 long 64 double 64 基本类型都有对应的包装类型 基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成 Integerx 2 装箱 inty x 拆箱缓存池

    2026年3月20日
    1

发表回复

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

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