Android签名文件转化为pk8和pem来对apk重签名
当我们需要修改已经打包好的apk中的某个文件时,比如改下图标,我们势必要采用反编译apk,改文件,重编译apk,重签名才行,参考:https://www.cnblogs.com/zndxall/p/9628475.html
但是如果我们不需要改apk里的东西呢,只是想重新签名一下,比如我们会有这样的场景需要验证,apk只能是我们自己的签名才能安装,如果其他人换用其他签名就会安装失败并报错签名不可用。这个时候我们只需要重新签名apk就可以了,如果还是采用反编译,删META-INF,重编译,再签名,一个apk,我们可以忍受,多个apk呢,就有点吃力了。这个时候,我们可以采用另一种方式签名:就是把key转化成pk8和pem文件,然后一条命令就可以完成重签名了
过程如下:
1.keystore文件转化为pk8+pem
keytool -importkeystore -srckeystore my.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12
2. 将PKCS12 dump成pem
openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem
tmp.rsa.pem 是文本格式可以直接查看。
打开文本可以看到私钥(PRIVATE KEY )和证书(CERTIFICATE);
复制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建个文件) cert.x509.pem
复制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem
cert.x509.pem 文件即是我们最后需要的证书文件
3.生成pk8格式的私钥
openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocrypt
cert.x509.pem private.pk8
即是我们最后需要的文件。
*备注:
-nocrypt 这个参数设定key加密 如果设置了这个参数 下面签名 只要证书+key 不需要密码了 如果加密 应该
openssl pkcs8 -topk8 -outform
DER -in private.rsa.pem -inform PEM -out private.pk8 接下来输入密码*
4.用法
java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apk
Android签名文件转化为pk8和pem来对apk重签名的更多相关文章
- 做自己的Android ROM,屏蔽对framework中的系统APK的签名检查
最近两天一直在尝试更新Android中的关键库以达到定制ROM的效果,中间比较曲折,记录下来供自己和大家参考. 因为我需要基于Android的原生代码做一定的修改,所以如果无法将我自己编译出的APK或 ...
- 将Linux下的Android签名对pk8和pem转换为Eclipse下的签名(keystore)
一 在github上下载工具 https://github.com/getfatday/keytool-importkeypair 二 将工具在Linux环境下解压或者解压后Copy到Linux下,运 ...
- Android测试之 APK重签名方法
方法一:命令行重签名 D:\>keytool -helpkeytool 用法: -certreq [-v] [-protected] [-alias <别名>] [-sigalg & ...
- Android APK 重签名
对APK 进行在线 加固后,Apk体积一般会变大,而且Apk会无法直接安装,因为缺少了你的签名.是的,你需要对这个Apk进行重签名. 如何重签名 重签名的方法,一般来说,有两种,第一种是用JDK自带的 ...
- Android反编译(三)之重签名
Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...
- android初级篇之apk签名key keystore格式转pk8+x509.pem
转自:http://www.jianshu.com/p/3bd5c68cc44d 常用的android的签名工具有两个即jarsigner 和apksigner.这两种使用的key格式不一样,keys ...
- 命令行创建Android应用,命令行生成签名文件,命令行查看签名信息,对APK包签名并编译运行
一.命令行创建Android应用 android create project -n HelloWorld -t android-22 -p HelloWorld1 -k org.crazyit.he ...
- 解决Android应用安装快完毕时提示签名冲突,android签名文件生成(转)
最近开发了一个Android手机应用,自己用Eclipse调试安装没问题,使用其他人调试生成的bin下的apk就会出现问题,安装到最后提示"安装签名冲突"错误,想了一下估计是没有给 ...
- android逆向基础:apk 反编译 重打包 重签名
apk 反编译大家都比较熟悉,这里只做一个笔记. 1 反编译 apk apktool d perfect.apk 这样就把资源文件解压缩了, classes.dex 也反编译成了 smali 文件 2 ...
随机推荐
- C语言 · 求先序遍历
算法训练 求先序排列 时间限制:1.0s 内存限制:256.0MB 锦囊1 后序的最后一个字母为根结点. 问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树 ...
- 建站工具Hexo
$ npm install hexo-cli -g $ hexo init blog $ cd blog $ npm install $ hexo server
- 微信小程序——购物车结算
项目需要做个购物车结算功能,先分析需求: 1.全选,反选的功能.当选中的个数 = 购物车的数量时,勾选全选按钮,反之则取消选中全选按钮: 2.改变选中状态时,计算总价和总数量: 3.单个产品的数量加减 ...
- 释放锁标记只有在Synchronized代码结束或者调用wait()。
释放锁标记只有在Synchronized代码结束或者调用wait(). 注意锁标记是自己不会自动释放,必须有通知. 注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密. WHIL ...
- MyBatis ResultMap Assocation 返回属性为null的问题
Model: public class Employee { private Integer id; private String lastName; private String email; pr ...
- babel配置项目目录支持转换es6语法,引入非项目目录js后,引入Js转换无效
我遇到了一个问题,我在已经配置babel的项目中通过require引入了一个项目目录外层的另一个js文件,前期是可以成功转换并打包的,但是到了后期就不行了,报错: 这个报错的意思是,引入的js文件中有 ...
- String 源码探究
起因:忽然想到平时用的HashMap 当key是字符串的时候为什么总可以覆盖,然后看了String的源码发现: private final char value[]; private int hash ...
- 定时 清理 elasticsearch 6.5.4 的 索引 文件
#!/bin/sh ip='127.0.0.1' port=' day=`date -d "2 days ago" +%Y%m%d` #day=`date -d "5 h ...
- C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置
C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...
- No Ads for Blogs
最近浏览器出问题了还是博客园登录的问题. 每次进入自己博客都要输入密码. 然后进入某一篇博文查看时,底部总会有些垃圾广告. 怎么办呢. 好吧,真抱歉,为了营造良好的阅读环境,只好给你屏蔽掉了. 其实也 ...